From 3af674aebad9e3792fbf13b3cbda7b1691b1f4f3 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sun, 22 Jun 2025 22:06:43 +0300 Subject: Add 50 new experimental HTML themes for Gemtexter MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Generated 50 unique themes with creative layouts and color schemes - Each theme includes: - Custom CSS with W3C validated styles - Example HTML preview page - Font files with proper licensing - Theme configuration file - License documentation - Layout types include: centered, wide, magazine, card, brutalist, terminal, book, hero, sidebar, and more creative designs - All themes support both light and dark color schemes - Fixed CSS validation issues for W3C compliance - Created theme gallery page at extras/html/themes/index.html - Added screenshot previews for all themes - Utility scripts included: - generate_50_themes.py - Main theme generator - fix_css_validation.py - CSS validator/fixer - create_theme_previews.py - Screenshot generator - Theme gallery with filtering at index.html 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- extras/html/themes/ember_mountain/LICENSE | 21 +++ extras/html/themes/ember_mountain/code.ttf | Bin 0 -> 367144 bytes extras/html/themes/ember_mountain/example.html | 75 +++++++++++ extras/html/themes/ember_mountain/handnotes.ttf | Bin 0 -> 38344 bytes extras/html/themes/ember_mountain/style.css | 168 ++++++++++++++++++++++++ extras/html/themes/ember_mountain/text.ttf | Bin 0 -> 75152 bytes extras/html/themes/ember_mountain/theme.conf | 8 ++ 7 files changed, 272 insertions(+) create mode 100644 extras/html/themes/ember_mountain/LICENSE create mode 100644 extras/html/themes/ember_mountain/code.ttf create mode 100644 extras/html/themes/ember_mountain/example.html create mode 100644 extras/html/themes/ember_mountain/handnotes.ttf create mode 100644 extras/html/themes/ember_mountain/style.css create mode 100644 extras/html/themes/ember_mountain/text.ttf create mode 100644 extras/html/themes/ember_mountain/theme.conf (limited to 'extras/html/themes/ember_mountain') diff --git a/extras/html/themes/ember_mountain/LICENSE b/extras/html/themes/ember_mountain/LICENSE new file mode 100644 index 0000000..8222452 --- /dev/null +++ b/extras/html/themes/ember_mountain/LICENSE @@ -0,0 +1,21 @@ +Theme: ember_mountain +Generated: 2025-06-22 21:38:55 + +Layout: card +Color Scheme: split_complementary (Light) + +Font Licenses: +============== +Heading Font: oxygen +License: OFL +Category: sans-serif + +Body Font: Lato +License: OFL +Category: sans-serif + +Code Font: hack +License: MIT +Category: monospace + +All fonts are free for personal use. diff --git a/extras/html/themes/ember_mountain/code.ttf b/extras/html/themes/ember_mountain/code.ttf new file mode 100644 index 0000000..7c8e65b Binary files /dev/null and b/extras/html/themes/ember_mountain/code.ttf differ diff --git a/extras/html/themes/ember_mountain/example.html b/extras/html/themes/ember_mountain/example.html new file mode 100644 index 0000000..515f07c --- /dev/null +++ b/extras/html/themes/ember_mountain/example.html @@ -0,0 +1,75 @@ + + + + + + Ember Mountain - Gemtexter Theme + + + +
+

Ember Mountain

+

A card layout with split complementary colors

+
+ +
+

Welcome to Ember Mountain

+

This theme features a carefully crafted card layout with a light split complementary color scheme. The typography combines sans-serif fonts for headings with sans-serif for body text.

+ +

Typography Showcase

+

The Lato font family provides excellent readability for body text, while oxygen adds character to headings. Code blocks use hack for clarity.

+ +

Color Palette

+

Primary: #6f3857 | + Secondary: #3f6a3d | + Accent: #3d6a66

+ +

Interactive Elements

+

Links like this example and longer text links that demonstrate the theme's navigation style use the secondary color.

+ +
+ "Design is not just what it looks like and feels like. Design is how it works." — Steve Jobs +
+ +

Code Examples

+

Inline code like theme.generate() and larger blocks:

+
// Theme configuration
+const theme = {
+    name: "ember_mountain",
+    layout: "card",
+    colors: {
+        primary: "#6f3857",
+        secondary: "#3f6a3d",
+        accent: "#3d6a66"
+    },
+    fonts: {
+        heading: "oxygen",
+        body: "Lato",
+        code: "hack"
+    }
+};
+ +

Content Structure

+
    +
  • Clean, readable typography with 15px base font size
  • +
  • Heading scale ratio of 1.42x for visual hierarchy
  • +
  • Line height of 1.71 for comfortable reading
  • +
  • Card layout optimized for content flow
  • +
  • Light theme with split complementary color harmony
  • +
+ +

Font Licensing

+

All fonts used in this theme are properly licensed:

+
    +
  • oxygen: OFL License
  • +
  • Lato: OFL License
  • +
  • hack: MIT License
  • +
+ +

Final Thoughts

+

Every element of this theme has been carefully designed to create a harmonious reading experience. The card layout ensures content is presented in an engaging way, while the color scheme provides the perfect backdrop for your words to shine.

+ +

Whether you're writing technical documentation, creative prose, or anything in between, this theme adapts to showcase your content beautifully.

+
+ + \ No newline at end of file diff --git a/extras/html/themes/ember_mountain/handnotes.ttf b/extras/html/themes/ember_mountain/handnotes.ttf new file mode 100644 index 0000000..25e688b Binary files /dev/null and b/extras/html/themes/ember_mountain/handnotes.ttf differ diff --git a/extras/html/themes/ember_mountain/style.css b/extras/html/themes/ember_mountain/style.css new file mode 100644 index 0000000..40327f7 --- /dev/null +++ b/extras/html/themes/ember_mountain/style.css @@ -0,0 +1,168 @@ +/* Base styles */ +@font-face { + font-family: 'text'; + src: url("./text.ttf") format("truetype"); +} + +@font-face { + font-family: 'heading'; + src: url("./heading.ttf") format("truetype"); +} + +@font-face { + font-family: 'code'; + src: url("./code.ttf") format("truetype"); +} + +@font-face { + font-family: 'handnotes'; + src: url("./handnotes.ttf") format("truetype"); +} + +:root { + --color-primary: #6f3857; + --color-secondary: #3f6a3d; + --color-accent: #3d6a66; + --color-bg: #efecee; + --color-text: #151515; + --font-size-base: 15px; + --font-size-h1: 1.42em; + --font-size-h2: 1.27em; + --font-size-h3: 1.12em; + --line-height: 1.71; +} + +* { + box-sizing: border-box; +} + +html { + font-size: var(--font-size-base); + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +body { + font-family: text, sans-serif; + background-color: var(--color-bg); + color: var(--color-text); + line-height: var(--line-height); + margin: 0; + padding: 0; + overflow-wrap: break-word; +} + +h1, h2, h3 { + font-family: heading, serif; + line-height: 1.2; + margin-top: 1em; + margin-bottom: 0.5em; +} + +h1 { + font-size: var(--font-size-h1); + color: var(--color-primary); +} + +h2 { + font-size: var(--font-size-h2); + color: var(--color-primary); +} + +h3 { + font-size: var(--font-size-h3); + color: var(--color-secondary); +} + +a { + font-family: code, monospace; + color: var(--color-secondary); + text-decoration: none; + transition: all 0.3s ease; +} + +a:hover { + color: var(--color-accent); + text-decoration: underline; +} + +.textlink { + font-family: text, sans-serif; +} + +.quote { + font-family: handnotes, cursive; + border-left: 4px solid var(--color-accent); + padding: 1em 1.5em; + margin: 1.5em 0; + background-color: rgba(111, 56, 87, 0.07); + font-style: italic; +} + +pre { + font-family: code, monospace; + background-color: rgba(21, 21, 21, 0.04); + border: 1px solid rgba(21, 21, 21, 0.13); + padding: 1em; + overflow-x: auto; + border-radius: 4px; + font-size: 0.9em; +} + +code { + font-family: code, monospace; + background-color: rgba(21, 21, 21, 0.04); + padding: 0.2em 0.4em; + border-radius: 3px; + font-size: 0.9em; +} + +ul, ol { + padding-left: 2em; + margin: 1em 0; +} + +li { + margin: 0.5em 0; +} + +img { + max-width: 100%; + height: auto; +} + +hr { + border: none; + border-top: 1px solid rgba(21, 21, 21, 0.20); + margin: 2em 0; +} + + +/* Layout: card */ + +body { + padding: 2em; + background: linear-gradient(135deg, rgba(111, 56, 87, 0.07), rgba(63, 106, 61, 0.07)); + min-height: 100vh; +} + +.header { + background-color: var(--color-bg); + padding: 3em; + margin-bottom: 3em; + border-radius: 16px; + box-shadow: 0 8px 32px rgba(0,0,0,0.1); + text-align: center; +} + +h1, h2, h3, p, ul, pre, .quote { + background-color: var(--color-bg); + padding: 2em; + margin: 1em 0; + border-radius: 12px; + box-shadow: 0 4px 16px rgba(0,0,0,0.05); +} + +h1, h2, h3 { + padding: 1em 2em; +} diff --git a/extras/html/themes/ember_mountain/text.ttf b/extras/html/themes/ember_mountain/text.ttf new file mode 100644 index 0000000..bb2e887 Binary files /dev/null and b/extras/html/themes/ember_mountain/text.ttf differ diff --git a/extras/html/themes/ember_mountain/theme.conf b/extras/html/themes/ember_mountain/theme.conf new file mode 100644 index 0000000..1e2ca2e --- /dev/null +++ b/extras/html/themes/ember_mountain/theme.conf @@ -0,0 +1,8 @@ +declare -xr HTML_HEADER=./extras/html/header.html.part +declare -xr HTML_FOOTER=./extras/html/footer.html.part +declare -xr HTML_CSS_STYLE=$HTML_THEME_DIR/style.css +declare -xr HTML_WEBFONT_HEADING=./extras/html/fonts/oxygen/oxygen-Bold.ttf +declare -xr HTML_WEBFONT_TEXT=./extras/html/fonts/Lato/Lato-Regular.ttf +declare -xr HTML_WEBFONT_CODE=./extras/html/fonts/hack/hack-Regular.ttf +declare -xr HTML_WEBFONT_HANDNOTES=./extras/html/fonts/khand/khand.ttf +declare -xr SOURCE_HIGHLIGHT_CSS=./extras/html/source-highlight-styles/mono.css -- cgit v1.2.3