feat: Phosphor v0.1.0 — clean CRT block-theme foundation (theme.json, FSE templates, parts, readme)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
4c25b5eeda
commit
ca93367b5b
14 changed files with 490 additions and 0 deletions
20
.gitignore
vendored
Normal file
20
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
# Secrets — never commit
|
||||||
|
*.env
|
||||||
|
.env
|
||||||
|
.env.*
|
||||||
|
!.env.example
|
||||||
|
*credentials*
|
||||||
|
*.pem
|
||||||
|
*.key
|
||||||
|
|
||||||
|
# OS / editor
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
|
*.swp
|
||||||
|
.idea/
|
||||||
|
.vscode/
|
||||||
|
|
||||||
|
# Build artifacts
|
||||||
|
dist/
|
||||||
|
*.zip
|
||||||
|
node_modules/
|
||||||
54
README.md
Normal file
54
README.md
Normal file
|
|
@ -0,0 +1,54 @@
|
||||||
|
# Phosphor
|
||||||
|
|
||||||
|
A CRT / terminal **WordPress block theme** — green-on-black, monospace, subtle scanlines.
|
||||||
|
Minimal, fast, full-site-editing (FSE). Built for people who like their blog to look like a
|
||||||
|
warm CRT terminal that's *alive*.
|
||||||
|
|
||||||
|
> Phosphor (n.) — the glowing coating on the inside of a cathode-ray tube. The green afterglow.
|
||||||
|
|
||||||
|
## Status
|
||||||
|
|
||||||
|
**v0.1.0 — early.** A clean, installable block-theme foundation extracted and generalized from a
|
||||||
|
live personal site. No personal data, no API keys, no third-party services — pure GPL theme.
|
||||||
|
The roadmap below tracks the road to a polished, sellable-grade product.
|
||||||
|
|
||||||
|
## Install
|
||||||
|
|
||||||
|
1. Download `phosphor.zip` from the [Releases](https://github.com/Jeuners/phosphor/releases) page.
|
||||||
|
2. WordPress Admin → **Appearance → Themes → Add New → Upload Theme** → choose the ZIP → Activate.
|
||||||
|
|
||||||
|
Or clone and symlink the `theme/` folder into `wp-content/themes/phosphor`.
|
||||||
|
|
||||||
|
## What's in here
|
||||||
|
|
||||||
|
```
|
||||||
|
theme/ # the Phosphor block theme (this is what gets zipped & installed)
|
||||||
|
plugins/ # optional companion plugins (CRT admin skin, coming-soon, …) — added incrementally
|
||||||
|
LICENSE # GPL-2.0-or-later
|
||||||
|
```
|
||||||
|
|
||||||
|
## Design tokens
|
||||||
|
|
||||||
|
| Token | Value |
|
||||||
|
|---|---|
|
||||||
|
| Background | `#000000` |
|
||||||
|
| Text | `#ffffff` |
|
||||||
|
| Accent | `#00ff00` (CRT green) |
|
||||||
|
| Muted | `#666666` |
|
||||||
|
| Type | monospace (Courier / system mono) |
|
||||||
|
|
||||||
|
All editable in the Site Editor (Styles) or `theme.json` — no code needed to rebrand.
|
||||||
|
|
||||||
|
## Roadmap
|
||||||
|
|
||||||
|
- [x] Clean block-theme foundation (theme.json, templates, parts, GPL)
|
||||||
|
- [ ] Companion plugin: CRT admin skin + coming-soon (genericized)
|
||||||
|
- [ ] Full i18n (`phosphor` text domain, `.pot`)
|
||||||
|
- [ ] Block patterns (hero, post grid, CRT cards)
|
||||||
|
- [ ] Customizer-free theming presets + style variations
|
||||||
|
- [ ] Demo content (WXR) + screenshot
|
||||||
|
- [ ] `readme.txt` to WordPress.org standard
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
[GPL-2.0-or-later](LICENSE). Use it, fork it, sell services around it.
|
||||||
40
theme/functions.php
Normal file
40
theme/functions.php
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Phosphor — theme setup.
|
||||||
|
*
|
||||||
|
* A block theme needs very little PHP: enqueue the supplemental stylesheet,
|
||||||
|
* load the text domain, and add a body class for the optional scanline overlay.
|
||||||
|
*
|
||||||
|
* @package Phosphor
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!defined('ABSPATH')) exit;
|
||||||
|
|
||||||
|
add_action('after_setup_theme', function (): void {
|
||||||
|
load_theme_textdomain('phosphor', get_template_directory() . '/languages');
|
||||||
|
add_theme_support('wp-block-styles');
|
||||||
|
add_theme_support('responsive-embeds');
|
||||||
|
add_theme_support('editor-styles');
|
||||||
|
add_editor_style('style.css');
|
||||||
|
});
|
||||||
|
|
||||||
|
add_action('wp_enqueue_scripts', function (): void {
|
||||||
|
$css = get_stylesheet_directory() . '/style.css';
|
||||||
|
wp_enqueue_style(
|
||||||
|
'phosphor',
|
||||||
|
get_stylesheet_uri(),
|
||||||
|
[],
|
||||||
|
file_exists($css) ? (string) filemtime($css) : '0.1.0'
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Toggle the CRT scanline overlay with: add_filter('phosphor_scanlines', '__return_true');
|
||||||
|
* Off by default so it never surprises a buyer.
|
||||||
|
*/
|
||||||
|
add_filter('body_class', function (array $classes): array {
|
||||||
|
if (apply_filters('phosphor_scanlines', false)) {
|
||||||
|
$classes[] = 'phosphor-scanlines';
|
||||||
|
}
|
||||||
|
return $classes;
|
||||||
|
});
|
||||||
8
theme/parts/footer.html
Normal file
8
theme/parts/footer.html
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
<!-- wp:group {"tagName":"footer","layout":{"type":"constrained"},"style":{"spacing":{"padding":{"top":"2.5rem","bottom":"2.5rem"},"margin":{"top":"3rem"}},"border":{"top":{"color":"var:preset|color|line","width":"1px"}}}} -->
|
||||||
|
<footer class="wp-block-group" style="border-top-color:var(--wp--preset--color--line);border-top-width:1px;margin-top:3rem;padding-top:2.5rem;padding-bottom:2.5rem">
|
||||||
|
<!-- wp:site-title {"textAlign":"center","level":0,"style":{"typography":{"fontSize":"0.8rem","textTransform":"lowercase","letterSpacing":"0.2em"},"color":{"text":"#666666"}}} /-->
|
||||||
|
<!-- wp:paragraph {"align":"center","style":{"typography":{"fontSize":"0.7rem","letterSpacing":"0.1em"},"color":{"text":"#444444"},"spacing":{"margin":{"top":"0.6rem"}}}} -->
|
||||||
|
<p class="has-text-align-center has-text-color" style="color:#444444;font-size:0.7rem;letter-spacing:0.1em;margin-top:0.6rem">Powered by <a href="https://github.com/Jeuners/phosphor">Phosphor</a></p>
|
||||||
|
<!-- /wp:paragraph -->
|
||||||
|
</footer>
|
||||||
|
<!-- /wp:group -->
|
||||||
10
theme/parts/header.html
Normal file
10
theme/parts/header.html
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
<!-- wp:group {"tagName":"header","layout":{"type":"constrained"},"style":{"spacing":{"padding":{"top":"1rem","bottom":"1rem"}},"border":{"bottom":{"color":"var:preset|color|line","width":"1px"}}}} -->
|
||||||
|
<header class="wp-block-group" style="border-bottom-color:var(--wp--preset--color--line);border-bottom-width:1px;padding-top:1rem;padding-bottom:1rem">
|
||||||
|
<!-- wp:group {"layout":{"type":"flex","flexWrap":"wrap","justifyContent":"space-between","verticalAlignment":"center"}} -->
|
||||||
|
<div class="wp-block-group">
|
||||||
|
<!-- wp:site-title {"level":0,"style":{"typography":{"textTransform":"lowercase","letterSpacing":"0.12em","fontSize":"1rem"}}} /-->
|
||||||
|
<!-- wp:navigation {"overlayMenu":"mobile","layout":{"type":"flex","justifyContent":"right"},"style":{"typography":{"fontSize":"0.85rem","letterSpacing":"0.06em"}}} /-->
|
||||||
|
</div>
|
||||||
|
<!-- /wp:group -->
|
||||||
|
</header>
|
||||||
|
<!-- /wp:group -->
|
||||||
34
theme/readme.txt
Normal file
34
theme/readme.txt
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
=== Phosphor ===
|
||||||
|
Contributors: phosphor
|
||||||
|
Requires at least: 6.4
|
||||||
|
Tested up to: 6.7
|
||||||
|
Requires PHP: 8.0
|
||||||
|
Stable tag: 0.1.0
|
||||||
|
License: GPLv2 or later
|
||||||
|
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
Tags: full-site-editing, blog, one-column, custom-colors, editor-style, block-patterns, dark-mode, accessibility-ready
|
||||||
|
|
||||||
|
A CRT/terminal WordPress block theme — green-on-black, monospace, subtle scanlines.
|
||||||
|
|
||||||
|
== Description ==
|
||||||
|
|
||||||
|
Phosphor is a minimal, fast full-site-editing block theme with a CRT/terminal aesthetic:
|
||||||
|
green-on-black, monospace type, optional scanline overlay, and a blinking-caret accent.
|
||||||
|
Everything is editable in the Site Editor (Styles) or theme.json — no code needed to rebrand.
|
||||||
|
|
||||||
|
Features:
|
||||||
|
* Full Site Editing (block templates + template parts)
|
||||||
|
* CRT design tokens in theme.json (base, contrast, accent, muted, line)
|
||||||
|
* Optional scanline overlay (off by default; enable via the `phosphor_scanlines` filter)
|
||||||
|
* Blinking-caret utility class (`ph-caret`)
|
||||||
|
* Accessibility: honors prefers-reduced-motion
|
||||||
|
|
||||||
|
== Installation ==
|
||||||
|
|
||||||
|
1. Appearance > Themes > Add New > Upload Theme.
|
||||||
|
2. Upload phosphor.zip and click Activate.
|
||||||
|
|
||||||
|
== Changelog ==
|
||||||
|
|
||||||
|
= 0.1.0 =
|
||||||
|
* Initial release: clean block-theme foundation (theme.json, templates, parts, GPL-2.0).
|
||||||
77
theme/style.css
Normal file
77
theme/style.css
Normal file
|
|
@ -0,0 +1,77 @@
|
||||||
|
/*
|
||||||
|
Theme Name: Phosphor
|
||||||
|
Theme URI: https://github.com/Jeuners/phosphor
|
||||||
|
Author: Phosphor
|
||||||
|
Author URI: https://github.com/Jeuners/phosphor
|
||||||
|
Description: A CRT/terminal WordPress block theme — green-on-black, monospace, subtle scanlines. Minimal, fast, full-site-editing.
|
||||||
|
Version: 0.1.0
|
||||||
|
Requires at least: 6.4
|
||||||
|
Tested up to: 6.7
|
||||||
|
Requires PHP: 8.0
|
||||||
|
License: GPL-2.0-or-later
|
||||||
|
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
||||||
|
Text Domain: phosphor
|
||||||
|
Tags: full-site-editing, blog, one-column, custom-colors, editor-style, block-patterns, dark-mode, accessibility-ready
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Phosphor — supplemental front-end styles. Design tokens live in theme.json. */
|
||||||
|
|
||||||
|
:root {
|
||||||
|
--ph-bg: #000;
|
||||||
|
--ph-fg: #fff;
|
||||||
|
--ph-accent: #00ff00;
|
||||||
|
--ph-muted: #666;
|
||||||
|
--ph-line: #1a1a1a;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* CRT scanline overlay — subtle, non-blocking */
|
||||||
|
body.phosphor-scanlines::before {
|
||||||
|
content: "";
|
||||||
|
position: fixed;
|
||||||
|
inset: 0;
|
||||||
|
pointer-events: none;
|
||||||
|
z-index: 9999;
|
||||||
|
background: repeating-linear-gradient(
|
||||||
|
0deg,
|
||||||
|
rgba(0, 255, 80, 0.03) 0 1px,
|
||||||
|
transparent 1px 3px
|
||||||
|
);
|
||||||
|
mix-blend-mode: screen;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Links — CRT green with glow on hover */
|
||||||
|
a {
|
||||||
|
color: var(--ph-accent);
|
||||||
|
text-decoration-thickness: 1px;
|
||||||
|
text-underline-offset: 0.2em;
|
||||||
|
transition: text-shadow 0.15s ease, opacity 0.15s ease;
|
||||||
|
}
|
||||||
|
a:hover {
|
||||||
|
text-shadow: 0 0 8px rgba(0, 255, 80, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Selection */
|
||||||
|
::selection {
|
||||||
|
background: var(--ph-accent);
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Post title accent prompt */
|
||||||
|
.wp-block-post-title a::before {
|
||||||
|
content: "\25B8\00a0"; /* ▸ */
|
||||||
|
color: var(--ph-accent);
|
||||||
|
opacity: 0.7;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Blinking caret utility (for headings/heroes) */
|
||||||
|
.ph-caret::after {
|
||||||
|
content: "\2588"; /* █ */
|
||||||
|
color: var(--ph-accent);
|
||||||
|
margin-left: 0.1em;
|
||||||
|
animation: ph-blink 1.05s steps(1) infinite;
|
||||||
|
}
|
||||||
|
@keyframes ph-blink { 50% { opacity: 0; } }
|
||||||
|
|
||||||
|
@media (prefers-reduced-motion: reduce) {
|
||||||
|
.ph-caret::after { animation: none; }
|
||||||
|
}
|
||||||
17
theme/templates/404.html
Normal file
17
theme/templates/404.html
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
<!-- wp:template-part {"slug":"header","tagName":"header"} /-->
|
||||||
|
|
||||||
|
<!-- wp:group {"tagName":"main","layout":{"type":"constrained"},"style":{"spacing":{"padding":{"top":"5rem","bottom":"5rem"}}}} -->
|
||||||
|
<main class="wp-block-group" style="padding-top:5rem;padding-bottom:5rem">
|
||||||
|
<!-- wp:heading {"level":1,"className":"ph-caret","style":{"typography":{"fontSize":"clamp(2rem,8vw,5rem)","letterSpacing":"-0.02em"},"color":{"text":"#00ff00"}}} -->
|
||||||
|
<h1 class="wp-block-heading ph-caret has-text-color" style="color:#00ff00;font-size:clamp(2rem,8vw,5rem);letter-spacing:-0.02em">404 — signal lost</h1>
|
||||||
|
<!-- /wp:heading -->
|
||||||
|
|
||||||
|
<!-- wp:paragraph {"style":{"color":{"text":"#666666"},"spacing":{"margin":{"top":"1rem","bottom":"2rem"}}}} -->
|
||||||
|
<p class="has-text-color" style="color:#666666;margin-top:1rem;margin-bottom:2rem">// the page you tried to reach is not on this channel.</p>
|
||||||
|
<!-- /wp:paragraph -->
|
||||||
|
|
||||||
|
<!-- wp:search {"label":"Search","showLabel":false,"placeholder":"search ▸","buttonText":"go","buttonPosition":"button-inside"} /-->
|
||||||
|
</main>
|
||||||
|
<!-- /wp:group -->
|
||||||
|
|
||||||
|
<!-- wp:template-part {"slug":"footer","tagName":"footer"} /-->
|
||||||
34
theme/templates/archive.html
Normal file
34
theme/templates/archive.html
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
<!-- wp:template-part {"slug":"header","tagName":"header"} /-->
|
||||||
|
|
||||||
|
<!-- wp:group {"tagName":"main","layout":{"type":"constrained"},"style":{"spacing":{"padding":{"top":"2.5rem","bottom":"2.5rem"}}}} -->
|
||||||
|
<main class="wp-block-group" style="padding-top:2.5rem;padding-bottom:2.5rem">
|
||||||
|
|
||||||
|
<!-- wp:query-title {"type":"archive","style":{"typography":{"fontSize":"1.5rem","letterSpacing":"0.04em"}}} /-->
|
||||||
|
<!-- wp:term-description {"style":{"typography":{"fontSize":"0.85rem"},"color":{"text":"#666666"},"spacing":{"margin":{"bottom":"2rem"}}}} /-->
|
||||||
|
|
||||||
|
<!-- wp:query {"queryId":0,"query":{"perPage":10,"pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"date","inherit":true}} -->
|
||||||
|
<div class="wp-block-query">
|
||||||
|
<!-- wp:post-template {"style":{"spacing":{"blockGap":"2.5rem"}}} -->
|
||||||
|
<!-- wp:post-title {"isLink":true,"level":2} /-->
|
||||||
|
<!-- wp:post-date {"style":{"typography":{"fontSize":"0.72rem","letterSpacing":"0.12em"},"color":{"text":"#666666"}}} /-->
|
||||||
|
<!-- wp:post-excerpt {"moreText":"read ▸"} /-->
|
||||||
|
<!-- /wp:post-template -->
|
||||||
|
|
||||||
|
<!-- wp:query-pagination {"layout":{"type":"flex","justifyContent":"space-between"},"style":{"spacing":{"margin":{"top":"2rem"}}}} -->
|
||||||
|
<!-- wp:query-pagination-previous {"label":"▸ prev"} /-->
|
||||||
|
<!-- wp:query-pagination-numbers /-->
|
||||||
|
<!-- wp:query-pagination-next {"label":"next ▸"} /-->
|
||||||
|
<!-- /wp:query-pagination -->
|
||||||
|
|
||||||
|
<!-- wp:query-no-results -->
|
||||||
|
<!-- wp:paragraph {"style":{"color":{"text":"#666666"}}} -->
|
||||||
|
<p class="has-text-color" style="color:#666666">// nothing here.</p>
|
||||||
|
<!-- /wp:paragraph -->
|
||||||
|
<!-- /wp:query-no-results -->
|
||||||
|
</div>
|
||||||
|
<!-- /wp:query -->
|
||||||
|
|
||||||
|
</main>
|
||||||
|
<!-- /wp:group -->
|
||||||
|
|
||||||
|
<!-- wp:template-part {"slug":"footer","tagName":"footer"} /-->
|
||||||
35
theme/templates/index.html
Normal file
35
theme/templates/index.html
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
<!-- wp:template-part {"slug":"header","tagName":"header"} /-->
|
||||||
|
|
||||||
|
<!-- wp:group {"tagName":"main","layout":{"type":"constrained"},"style":{"spacing":{"padding":{"top":"2.5rem","bottom":"2.5rem"}}}} -->
|
||||||
|
<main class="wp-block-group" style="padding-top:2.5rem;padding-bottom:2.5rem">
|
||||||
|
|
||||||
|
<!-- wp:query {"queryId":0,"query":{"perPage":10,"pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"date","inherit":true}} -->
|
||||||
|
<div class="wp-block-query">
|
||||||
|
<!-- wp:post-template {"style":{"spacing":{"blockGap":"3rem"}}} -->
|
||||||
|
<!-- wp:post-title {"isLink":true,"level":2} /-->
|
||||||
|
<!-- wp:post-date {"style":{"typography":{"fontSize":"0.72rem","letterSpacing":"0.12em"},"color":{"text":"#666666"}}} /-->
|
||||||
|
<!-- wp:post-excerpt {"moreText":"read ▸"} /-->
|
||||||
|
<!-- /wp:post-template -->
|
||||||
|
|
||||||
|
<!-- wp:spacer {"height":"2rem"} -->
|
||||||
|
<div style="height:2rem" aria-hidden="true" class="wp-block-spacer"></div>
|
||||||
|
<!-- /wp:spacer -->
|
||||||
|
|
||||||
|
<!-- wp:query-pagination {"layout":{"type":"flex","justifyContent":"space-between"}} -->
|
||||||
|
<!-- wp:query-pagination-previous {"label":"▸ prev"} /-->
|
||||||
|
<!-- wp:query-pagination-numbers /-->
|
||||||
|
<!-- wp:query-pagination-next {"label":"next ▸"} /-->
|
||||||
|
<!-- /wp:query-pagination -->
|
||||||
|
|
||||||
|
<!-- wp:query-no-results -->
|
||||||
|
<!-- wp:paragraph {"style":{"color":{"text":"#666666"}}} -->
|
||||||
|
<p class="has-text-color" style="color:#666666">// nothing here yet.</p>
|
||||||
|
<!-- /wp:paragraph -->
|
||||||
|
<!-- /wp:query-no-results -->
|
||||||
|
</div>
|
||||||
|
<!-- /wp:query -->
|
||||||
|
|
||||||
|
</main>
|
||||||
|
<!-- /wp:group -->
|
||||||
|
|
||||||
|
<!-- wp:template-part {"slug":"footer","tagName":"footer"} /-->
|
||||||
11
theme/templates/page.html
Normal file
11
theme/templates/page.html
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
<!-- wp:template-part {"slug":"header","tagName":"header"} /-->
|
||||||
|
|
||||||
|
<!-- wp:group {"tagName":"main","layout":{"type":"constrained"},"style":{"spacing":{"padding":{"top":"2.5rem","bottom":"2.5rem"}}}} -->
|
||||||
|
<main class="wp-block-group" style="padding-top:2.5rem;padding-bottom:2.5rem">
|
||||||
|
<!-- wp:post-title {"level":1} /-->
|
||||||
|
<!-- wp:post-featured-image {"style":{"border":{"radius":"4px"},"spacing":{"margin":{"top":"1rem"}}}} /-->
|
||||||
|
<!-- wp:post-content {"layout":{"type":"constrained"},"style":{"spacing":{"margin":{"top":"1.6rem"}}}} /-->
|
||||||
|
</main>
|
||||||
|
<!-- /wp:group -->
|
||||||
|
|
||||||
|
<!-- wp:template-part {"slug":"footer","tagName":"footer"} /-->
|
||||||
30
theme/templates/search.html
Normal file
30
theme/templates/search.html
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
<!-- wp:template-part {"slug":"header","tagName":"header"} /-->
|
||||||
|
|
||||||
|
<!-- wp:group {"tagName":"main","layout":{"type":"constrained"},"style":{"spacing":{"padding":{"top":"2.5rem","bottom":"2.5rem"}}}} -->
|
||||||
|
<main class="wp-block-group" style="padding-top:2.5rem;padding-bottom:2.5rem">
|
||||||
|
|
||||||
|
<!-- wp:query-title {"type":"search","style":{"typography":{"fontSize":"1.5rem"}}} /-->
|
||||||
|
<!-- wp:search {"showLabel":false,"placeholder":"search ▸","buttonText":"go","buttonPosition":"button-inside","style":{"spacing":{"margin":{"top":"1rem","bottom":"2rem"}}}} /-->
|
||||||
|
|
||||||
|
<!-- wp:query {"queryId":0,"query":{"perPage":10,"pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"date","inherit":true}} -->
|
||||||
|
<div class="wp-block-query">
|
||||||
|
<!-- wp:post-template {"style":{"spacing":{"blockGap":"2.5rem"}}} -->
|
||||||
|
<!-- wp:post-title {"isLink":true,"level":2} /-->
|
||||||
|
<!-- wp:post-excerpt {"moreText":"read ▸"} /-->
|
||||||
|
<!-- /wp:post-template -->
|
||||||
|
<!-- wp:query-pagination {"layout":{"type":"flex","justifyContent":"space-between"}} -->
|
||||||
|
<!-- wp:query-pagination-previous {"label":"▸ prev"} /-->
|
||||||
|
<!-- wp:query-pagination-next {"label":"next ▸"} /-->
|
||||||
|
<!-- /wp:query-pagination -->
|
||||||
|
<!-- wp:query-no-results -->
|
||||||
|
<!-- wp:paragraph {"style":{"color":{"text":"#666666"}}} -->
|
||||||
|
<p class="has-text-color" style="color:#666666">// no matches.</p>
|
||||||
|
<!-- /wp:paragraph -->
|
||||||
|
<!-- /wp:query-no-results -->
|
||||||
|
</div>
|
||||||
|
<!-- /wp:query -->
|
||||||
|
|
||||||
|
</main>
|
||||||
|
<!-- /wp:group -->
|
||||||
|
|
||||||
|
<!-- wp:template-part {"slug":"footer","tagName":"footer"} /-->
|
||||||
43
theme/templates/single.html
Normal file
43
theme/templates/single.html
Normal file
|
|
@ -0,0 +1,43 @@
|
||||||
|
<!-- wp:template-part {"slug":"header","tagName":"header"} /-->
|
||||||
|
|
||||||
|
<!-- wp:group {"tagName":"main","layout":{"type":"constrained"},"style":{"spacing":{"padding":{"top":"2.5rem","bottom":"2.5rem"}}}} -->
|
||||||
|
<main class="wp-block-group" style="padding-top:2.5rem;padding-bottom:2.5rem">
|
||||||
|
|
||||||
|
<!-- wp:post-title {"level":1} /-->
|
||||||
|
|
||||||
|
<!-- wp:group {"layout":{"type":"flex","flexWrap":"wrap"},"style":{"typography":{"fontSize":"0.72rem","letterSpacing":"0.12em"},"color":{"text":"#666666"},"spacing":{"margin":{"top":"0.4rem","bottom":"1.6rem"}}}} -->
|
||||||
|
<div class="wp-block-group has-text-color" style="color:#666666;margin-top:0.4rem;margin-bottom:1.6rem;font-size:0.72rem;letter-spacing:0.12em">
|
||||||
|
<!-- wp:post-date /-->
|
||||||
|
<!-- wp:post-terms {"term":"category","prefix":"· "} /-->
|
||||||
|
</div>
|
||||||
|
<!-- /wp:group -->
|
||||||
|
|
||||||
|
<!-- wp:post-featured-image {"style":{"border":{"radius":"4px"}}} /-->
|
||||||
|
|
||||||
|
<!-- wp:post-content {"layout":{"type":"constrained"},"style":{"spacing":{"margin":{"top":"1.6rem"}}}} /-->
|
||||||
|
|
||||||
|
<!-- wp:separator {"style":{"color":{"background":"#1a1a1a"}}} -->
|
||||||
|
<hr class="wp-block-separator has-text-color has-css-opacity has-background" style="background-color:#1a1a1a;color:#1a1a1a"/>
|
||||||
|
<!-- /wp:separator -->
|
||||||
|
|
||||||
|
<!-- wp:comments -->
|
||||||
|
<div class="wp-block-comments">
|
||||||
|
<!-- wp:comments-title /-->
|
||||||
|
<!-- wp:comment-template -->
|
||||||
|
<!-- wp:comment-author-name /-->
|
||||||
|
<!-- wp:comment-date /-->
|
||||||
|
<!-- wp:comment-content /-->
|
||||||
|
<!-- wp:comment-reply-link /-->
|
||||||
|
<!-- /wp:comment-template -->
|
||||||
|
<!-- wp:comments-pagination -->
|
||||||
|
<!-- wp:comments-pagination-previous /-->
|
||||||
|
<!-- wp:comments-pagination-next /-->
|
||||||
|
<!-- /wp:comments-pagination -->
|
||||||
|
<!-- wp:post-comments-form /-->
|
||||||
|
</div>
|
||||||
|
<!-- /wp:comments -->
|
||||||
|
|
||||||
|
</main>
|
||||||
|
<!-- /wp:group -->
|
||||||
|
|
||||||
|
<!-- wp:template-part {"slug":"footer","tagName":"footer"} /-->
|
||||||
77
theme/theme.json
Normal file
77
theme/theme.json
Normal file
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"$schema": "https://schemas.wp.org/trunk/theme.json",
|
||||||
|
"version": 3,
|
||||||
|
"settings": {
|
||||||
|
"appearanceTools": true,
|
||||||
|
"useRootPaddingAwareAlignments": true,
|
||||||
|
"layout": {
|
||||||
|
"contentSize": "720px",
|
||||||
|
"wideSize": "1100px"
|
||||||
|
},
|
||||||
|
"color": {
|
||||||
|
"defaultPalette": false,
|
||||||
|
"custom": true,
|
||||||
|
"palette": [
|
||||||
|
{ "slug": "base", "color": "#000000", "name": "Base" },
|
||||||
|
{ "slug": "contrast", "color": "#ffffff", "name": "Contrast" },
|
||||||
|
{ "slug": "accent", "color": "#00ff00", "name": "Accent (CRT green)" },
|
||||||
|
{ "slug": "muted", "color": "#666666", "name": "Muted" },
|
||||||
|
{ "slug": "line", "color": "#1a1a1a", "name": "Line" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"typography": {
|
||||||
|
"defaultFontSizes": false,
|
||||||
|
"fluid": true,
|
||||||
|
"fontFamilies": [
|
||||||
|
{
|
||||||
|
"slug": "mono",
|
||||||
|
"name": "Monospace",
|
||||||
|
"fontFamily": "'Courier New', Courier, ui-monospace, monospace"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"slug": "sans",
|
||||||
|
"name": "System Sans",
|
||||||
|
"fontFamily": "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"fontSizes": [
|
||||||
|
{ "slug": "small", "size": "0.875rem", "name": "Small" },
|
||||||
|
{ "slug": "medium", "size": "1rem", "name": "Medium" },
|
||||||
|
{ "slug": "large", "size": "1.5rem", "name": "Large" },
|
||||||
|
{ "slug": "xlarge", "size": "clamp(2rem, 8vw, 6rem)", "name": "XL Hero" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"spacing": {
|
||||||
|
"units": ["px", "em", "rem", "vh", "vw", "%"],
|
||||||
|
"spacingScale": { "steps": 7 }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"styles": {
|
||||||
|
"color": {
|
||||||
|
"background": "var(--wp--preset--color--base)",
|
||||||
|
"text": "var(--wp--preset--color--contrast)"
|
||||||
|
},
|
||||||
|
"typography": {
|
||||||
|
"fontFamily": "var(--wp--preset--font-family--mono)",
|
||||||
|
"fontSize": "var(--wp--preset--font-size--medium)",
|
||||||
|
"lineHeight": "1.6",
|
||||||
|
"letterSpacing": "0.02em"
|
||||||
|
},
|
||||||
|
"elements": {
|
||||||
|
"link": {
|
||||||
|
"color": { "text": "var(--wp--preset--color--accent)" },
|
||||||
|
":hover": { "typography": { "textDecoration": "underline" } }
|
||||||
|
},
|
||||||
|
"h1": { "typography": { "fontSize": "var(--wp--preset--font-size--xlarge)", "lineHeight": "1.1", "letterSpacing": "-0.02em" } },
|
||||||
|
"h2": { "typography": { "fontSize": "var(--wp--preset--font-size--large)", "lineHeight": "1.2" } }
|
||||||
|
},
|
||||||
|
"blocks": {
|
||||||
|
"core/post-title": { "typography": { "fontWeight": "500" } }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"templateParts": [
|
||||||
|
{ "name": "header", "title": "Header", "area": "header" },
|
||||||
|
{ "name": "footer", "title": "Footer", "area": "footer" }
|
||||||
|
],
|
||||||
|
"customTemplates": []
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue