diff options
| author | Paul Buetow <paul@buetow.org> | 2025-06-22 22:06:43 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2025-06-22 22:06:43 +0300 |
| commit | 3af674aebad9e3792fbf13b3cbda7b1691b1f4f3 (patch) | |
| tree | c70f6033d21628579d96044c89a060e9031dbf8b /extras/html/themes/deep_sky/style.css | |
| parent | 99078f90bf5222c618a60e536cb148850e4b89e2 (diff) | |
Add 50 new experimental HTML themes for Gemtexter
- 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 <noreply@anthropic.com>
Diffstat (limited to 'extras/html/themes/deep_sky/style.css')
| -rw-r--r-- | extras/html/themes/deep_sky/style.css | 230 |
1 files changed, 230 insertions, 0 deletions
diff --git a/extras/html/themes/deep_sky/style.css b/extras/html/themes/deep_sky/style.css new file mode 100644 index 0000000..c882bb9 --- /dev/null +++ b/extras/html/themes/deep_sky/style.css @@ -0,0 +1,230 @@ +/* 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: #980c4e; + --color-secondary: #911413; + --color-accent: #880b82; + --color-bg: #f0edee; + --color-text: #1d1d1d; + --font-size-base: 15px; + --font-size-h1: 2.37em; + --font-size-h2: 1.78em; + --font-size-h3: 1.33em; + --line-height: 1.43; +} + +* { + 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(152, 12, 78, 0.07); + font-style: italic; +} + +pre { + font-family: code, monospace; + background-color: rgba(29, 29, 29, 0.04); + border: 1px solid rgba(29, 29, 29, 0.13); + padding: 1em; + overflow-x: auto; + border-radius: 4px; + font-size: 0.9em; +} + +code { + font-family: code, monospace; + background-color: rgba(29, 29, 29, 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(29, 29, 29, 0.20); + margin: 2em 0; +} + + +/* Layout: artistic */ + +body { + padding: 4em 2em; + background: linear-gradient(45deg, #f0edee, rgba(240, 237, 238, 0.87)); + min-height: 100vh; + position: relative; +} + +body::before, body::after { + content: ""; + position: fixed; + width: 300px; + height: 300px; + border-radius: 50%; + filter: blur(100px); + z-index: -1; +} + +body::before { + top: -150px; + left: -150px; + background: rgba(152, 12, 78, 0.27); +} + +body::after { + bottom: -150px; + right: -150px; + background: rgba(145, 20, 19, 0.27); +} + +.header { + text-align: center; + margin-bottom: 4em; + position: relative; +} + +.header h1 { + font-size: 4em; + margin: 0; + transform: perspective(500px) rotateY(-15deg); + text-shadow: 3px 3px 0 #980c4e, 6px 6px 0 #911413, 9px 9px 20px rgba(0,0,0,0.2); +} + +h2, h3 { + position: relative; + display: inline-block; +} + +h2::after, h3::after { + content: ""; + position: absolute; + bottom: -5px; + left: 0; + right: 0; + height: 3px; + background: linear-gradient(90deg, #980c4e, #911413, #880b82); + border-radius: 2px; +} + +p, ul, pre, .quote { + max-width: 65ch; + margin: 2em auto; + padding: 2em; + background: rgba(255,255,255,0.9); + box-shadow: 0 8px 32px rgba(0,0,0,0.1), inset 0 1px 0 rgba(255,255,255,0.5); + border-radius: 20px; + transform: rotate(-1deg); +} + +p:nth-child(even), ul:nth-child(even), .quote:nth-child(even) { + transform: rotate(1deg); +} + +a { + color: #911413; + text-decoration: none; + background-image: linear-gradient(90deg, #980c4e, #911413); + background-size: 100% 2px; + background-position: 0 100%; + background-repeat: no-repeat; + transition: all 0.3s ease; +} + +a:hover { + background-size: 100% 100%; + color: white; + padding: 0.2em 0.4em; + margin: -0.2em -0.4em; +} |
