Skip to documentation
SLOP

tiny.zen.theme

Reference tiny.zen theme

Defined in tiny.zen.

API (20)

Actions

Public operations.

Types and contracts

Public types and contracts.

Values and defaults

Public values and defaults.

No direct callersNo direct callstiny.zentheme
Static calls · unresolved targets: unknown · external targets: unknown.

Source

Source: lib/zen/src/theme/defaults.zig:1

zig
pub const default_layout =    "<!doctype html>\n" ++    "<html lang=\"{{language}}\">\n" ++    "<head>\n" ++    "<meta charset=\"utf-8\">\n" ++    "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n" ++    "<title>{{title}} - {{site.title}}</title>\n" ++    "<meta name=\"description\" content=\"{{description}}\">\n" ++    "<link rel=\"stylesheet\" href=\"/{{style.path}}\">\n" ++    "</head>\n" ++    "<body>\n" ++    "<main>\n" ++    "{{content}}\n" ++    "</main>\n" ++    "</body>\n" ++    "</html>\n";

Source: lib/zen/src/theme/defaults.zig:18

zig
pub const default_style =    ":root{color-scheme:light dark;font-family:Inter,ui-sans-serif,system-ui,sans-serif;line-height:1.55;background:#f7f7f4;color:#20231f}" ++    "body{margin:0}" ++    "main{max-width:72ch;margin:0 auto;padding:4rem 1.25rem}" ++    "h1,h2,h3{line-height:1.12}" ++    "a{color:#0b6bcb}" ++    "sup{line-height:0}" ++    "pre{overflow:auto;padding:1rem;background:#1f241f;color:#f4f6ef}" ++    "code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}" ++    ".zen-code-block{margin:1rem 0;border:1px solid #d6d6ce;background:#1f241f;color:#f4f6ef}" ++    ".zen-code-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.55rem .8rem;border-bottom:1px solid rgba(244,246,239,.18);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem}" ++    ".zen-code-title{font-weight:700}" ++    ".zen-code-language{margin-left:auto;color:#b8c1aa;text-transform:uppercase;letter-spacing:.08em}" ++    ".zen-code{margin:0;padding:.8rem 0;overflow-x:auto;background:transparent;color:inherit}" ++    ".zen-code-wrap .zen-code{overflow-x:hidden}" ++    ".zen-code code{display:block;font-size:.9rem}" ++    ".zen-code-line{display:grid;grid-template-columns:3ch minmax(0,1fr);gap:.8rem;min-height:1.5em;padding:0 .85rem}" ++    ".zen-code-no-lines .zen-code-line{grid-template-columns:minmax(0,1fr)}" ++    ".zen-code-line-number{user-select:none;text-align:right;color:#8f987f}" ++    ".zen-code-line-source{min-width:0;white-space:pre}" ++    ".zen-code-wrap .zen-code-line-source{white-space:pre-wrap;overflow-wrap:anywhere}" ++    ".zen-code-keyword{color:#ffb86c}" ++    ".zen-code-type{color:#8be9fd}" ++    ".zen-code-string{color:#f1fa8c}" ++    ".zen-code-comment{color:#9aa17d}" ++    ".zen-code-number{color:#bd93f9}" ++    ".zen-code-builtin{color:#50fa7b}" ++    ".zen-code-constant{color:#ff79c6}" ++    "blockquote{border-left:4px solid #9aa17d;margin-left:0;padding-left:1rem;color:#4e5548}" ++    "main:has(>.zen-slides){max-width:none;padding:0}" ++    ".zen-slides{min-height:100vh;scroll-snap-type:y mandatory}" ++    ".zen-slide{min-height:100vh;box-sizing:border-box;display:grid;place-items:center;padding:1rem;scroll-snap-align:start}" ++    ".zen-slide-frame{box-sizing:border-box;container-type:inline-size;display:flex;flex-direction:column;justify-content:center;gap:1rem;width:min(calc(100vw - 2rem),calc(177.7778vh - 3.5556rem));height:min(calc(100vh - 2rem),calc(56.25vw - 1.125rem));padding:3.5rem 4rem;overflow:auto}" ++    ".zen-slide-frame>*{width:100%;max-width:68rem;margin-left:auto;margin-right:auto}" ++    ".zen-slide-frame>p:has(>img:only-child),.zen-slide-frame>p:has(>img.zen-slide-motion){position:relative;display:grid;flex:1 1 0;place-items:center;min-height:0;margin:0;overflow:hidden;line-height:0}.zen-slide-frame>p:has(>img:only-child):first-of-type,.zen-slide-frame>p:has(>img.zen-slide-motion):first-of-type{flex-grow:1.6}.zen-slide-frame>p:has(>img:only-child) img,.zen-slide-frame>p:has(>img.zen-slide-motion)>img,.zen-slide-frame>p:has(>img.zen-slide-motion)>object{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.zen-slide-frame img[data-zen-motion-src][hidden]{display:block;visibility:hidden}.zen-slide-frame object[data-zen-motion-live]:not([data-zen-motion-ready]){visibility:hidden}" ++    ".zen-slide-frame h1{font-size:clamp(1.1rem,5.2cqi,9rem);line-height:1;margin-bottom:.3rem}" ++    ".zen-slide-frame h2{font-size:clamp(.9rem,3.5cqi,6.5rem);line-height:1.08;margin-top:0}" ++    ".zen-slide-frame p,.zen-slide-frame li{font-size:clamp(.8rem,1.8cqi,3.2rem);line-height:1.36}" ++    ".zen-slide-frame ul,.zen-slide-frame ol{padding-left:2.1rem}" ++    ".zen-slide-frame math[display=\"block\"]{font-size:clamp(1rem,2cqi,3.6rem);line-height:1.2;text-align:center}" ++    ".zen-slide-frame img,.zen-slide-frame object,.zen-slide-frame svg,.zen-slide-frame video,.zen-slide-frame canvas,.zen-slide-frame math[display=\"block\"],.zen-slide-frame .zen-diagram,.zen-slide-frame .zen-code-block{max-width:100%}" ++    ".zen-slide-frame img,.zen-slide-frame object,.zen-slide-frame svg,.zen-slide-frame video,.zen-slide-frame canvas{max-height:68vh;object-fit:contain}" ++    ".zen-slide-frame .zen-code-block,.zen-slide-frame .zen-diagram{max-height:60vh;overflow:auto;font-size:clamp(.72rem,1.35cqi,2.4rem)}" ++    ".zen-speaker-notes[hidden]{display:none}" ++    "body.zen-print-notes .zen-speaker-notes[hidden]{display:block;margin-top:1rem;padding:1rem;border-top:1px solid #d6d6ce;font-size:1rem;color:#4e5548}" ++    ".zen-slide-toolbar{position:fixed;right:1rem;bottom:1rem;z-index:40;display:flex;align-items:center;gap:.35rem;padding:.35rem;border:1px solid #d6d6ce;background:#f7f7f4;color:#20231f;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;opacity:.28}" ++    ".zen-slide-toolbar:hover,.zen-slide-toolbar:focus-within{opacity:1}" ++    ".zen-slide-toolbar button,.zen-presenter-controls button{display:inline-grid;place-items:center;width:2rem;height:2rem;border:1px solid #d6d6ce;background:#fff;color:inherit;font:inherit}" ++    ".zen-slide-toolbar button svg,.zen-presenter-controls button svg{width:1.1rem;height:1.1rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}" ++    ".zen-slide-toolbar button:disabled{opacity:.35}.zen-slide-toolbar button[aria-pressed=\"true\"],.zen-presenter-controls button[aria-pressed=\"true\"]{background:#20231f;color:#f7f7f4}" ++    ".zen-slide-counter{min-width:4.5rem;text-align:center;font-size:.78rem}" ++    ".zen-slide-notes-panel{position:fixed;left:1rem;right:1rem;bottom:4.1rem;z-index:35;max-height:38vh;overflow:auto;padding:1rem;border:1px solid #d6d6ce;background:#f7f7f4;color:#20231f}" ++    ".zen-slide-notes-panel p{font-size:1rem;line-height:1.45}" ++    ".zen-slide-overview-panel{position:fixed;right:1rem;top:1rem;bottom:4.1rem;z-index:36;width:min(24rem,calc(100vw - 2rem));overflow:auto;padding:1rem;border:1px solid #d6d6ce;background:#f7f7f4;color:#20231f}" ++    ".zen-slide-overview-summary{display:grid;gap:.35rem;margin-bottom:.8rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82rem}.zen-slide-overview-panel ol{display:grid;gap:.35rem;list-style:none;margin:0;padding:0}.zen-slide-overview-panel button{display:grid;grid-template-columns:2.5rem minmax(0,1fr);gap:.2rem .5rem;width:100%;padding:.45rem;border:1px solid transparent;background:transparent;color:inherit;text-align:left;font:inherit}.zen-slide-overview-panel button[aria-current=\"true\"]{border-color:#20231f;background:#fff}.zen-slide-overview-panel em{grid-column:2;font-size:.78rem;color:#4e5548;font-style:normal}" ++    ".zen-presenter-view{display:none}" ++    "body.zen-presenter-mode{background:#f7f7f4;color:#20231f}" ++    "body.zen-presenter-mode .zen-slides{display:none}" ++    "body.zen-presenter-mode .zen-slide-toolbar{display:none}" ++    "body.zen-presenter-mode .zen-presenter-view{height:100vh;box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(18rem,.85fr);gap:1.5rem;padding:1.5rem}" ++    ".zen-presenter-current,.zen-presenter-side{min-width:0;min-height:0;border:1px solid #d6d6ce;background:#fff;padding:1rem;overflow:auto}.zen-presenter-current{display:grid;place-items:center}.zen-presenter-current .zen-slide-frame{width:100%;height:auto;aspect-ratio:16/9;padding:2rem}" ++    ".zen-presenter-side{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:1rem;overflow:hidden}.zen-presenter-notes-section{display:flex;flex-direction:column;min-height:0}" ++    ".zen-presenter-current p,.zen-presenter-current li{font-size:1.05rem}.zen-presenter-current .zen-code-block,.zen-presenter-current .zen-diagram{max-height:48vh;overflow:auto;font-size:.9rem}" ++    ".zen-presenter-meta{display:grid;grid-template-columns:repeat(3,max-content) 1fr;align-items:center;gap:.75rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9rem;color:#4e5548}.zen-presenter-controls{display:flex;justify-content:flex-end;gap:.35rem}.zen-presenter-notes-section>h2,.zen-presenter-next>h2{margin:.2rem 0 .5rem;font-size:1rem;line-height:1.1;color:#4e5548}.zen-presenter-notes{max-height:none;min-height:0;overflow:auto}.zen-presenter-notes p{font-size:1.08rem;line-height:1.5}.zen-presenter-next{padding-top:1rem;border-top:1px solid #d6d6ce}.zen-presenter-next-title{font-size:1.05rem;color:#4e5548}.zen-presenter-next-preview{margin-top:.65rem;max-height:none;overflow:hidden;border:1px solid #d6d6ce;background:#f7f7f4;padding:.75rem}.zen-presenter-next-preview .zen-slide-frame{width:100%;height:auto;aspect-ratio:16/9;gap:.35rem;padding:.65rem;overflow:hidden}.zen-presenter-next-preview p,.zen-presenter-next-preview li{font-size:.82rem;line-height:1.3}.zen-presenter-next-preview .zen-code-block,.zen-presenter-next-preview .zen-diagram{font-size:.68rem;max-height:8rem;overflow:hidden}" ++    "body.zen-presenter-dark{color-scheme:dark;background:#11100d;color:#f6f1e7}body.zen-presenter-dark .zen-presenter-current,body.zen-presenter-dark .zen-presenter-side,body.zen-presenter-dark .zen-presenter-next-preview{border-color:#4d4639;background:#171511;color:#f6f1e7}body.zen-presenter-dark .zen-presenter-current h1,body.zen-presenter-dark .zen-presenter-current h2,body.zen-presenter-dark .zen-presenter-current h3,body.zen-presenter-dark .zen-presenter-current p,body.zen-presenter-dark .zen-presenter-current li,body.zen-presenter-dark .zen-presenter-current math{color:#f6f1e7}body.zen-presenter-dark .zen-presenter-current .zen-diagram,body.zen-presenter-dark .zen-presenter-next-preview .zen-diagram{background:#f7f7f4;color:#20231f}body.zen-presenter-dark .zen-presenter-meta,body.zen-presenter-dark .zen-presenter-notes-section h2,body.zen-presenter-dark .zen-presenter-next h2,body.zen-presenter-dark .zen-presenter-next-title{color:#cdbf9a}body.zen-presenter-dark .zen-presenter-controls button{border-color:#4d4639;background:#211e18;color:#f6f1e7}body.zen-presenter-dark .zen-presenter-controls button[aria-pressed=\"true\"]{background:#cdbf9a;color:#11100d}" ++    "@media(max-width:720px){.zen-slide{padding:.5rem}.zen-slide-frame{width:min(calc(100vw - 1rem),calc(177.7778vh - 1.7778rem));height:min(calc(100vh - 1rem),calc(56.25vw - .5625rem));gap:.45rem;padding:1rem}.zen-slide-frame .zen-code-block,.zen-slide-frame .zen-diagram{max-height:54vh}.zen-slide-toolbar{left:1rem;right:1rem;justify-content:center}.zen-slide-notes-panel{bottom:4.3rem}.zen-slide-overview-panel{left:1rem;right:1rem;width:auto;bottom:4.3rem}body.zen-presenter-mode .zen-presenter-view{height:auto;grid-template-columns:1fr}.zen-presenter-notes{max-height:38vh}.zen-presenter-meta{grid-template-columns:repeat(2,max-content) 1fr}.zen-presenter-controls{grid-column:1/-1;justify-content:flex-start}}" ++    ".footnotes{margin-top:2.5rem;padding-top:1rem;border-top:1px solid #d6d6ce;font-size:.9rem}" ++    ".footnotes ol{padding-left:1.5rem}" ++    ".zen-page-badge{display:inline-block;margin-bottom:1.2rem;padding:.15rem .55rem;border:1.5px solid #b3261e;color:#b3261e;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.72rem;font-weight:700;letter-spacing:.18em;text-indent:.18em}" ++    ".zen-quiz{margin:2.5rem 0;padding:1.25rem 1.5rem;border:1px solid #d6d6ce;background:#fff}" ++    ".zen-quiz-questions{margin:0;padding-left:1.25rem}" ++    ".zen-quiz-question{margin:1rem 0}" ++    ".zen-quiz-prompt{font-weight:600}" ++    ".zen-quiz-options{list-style:lower-alpha;padding-left:1.5rem}" ++    ".zen-quiz-answer{margin:.5rem 0}" ++    ".zen-quiz-answer summary{cursor:pointer;color:#0b6bcb}" ++    "math mtd:first-child{padding-left:0}" ++    "math mtd:last-child{padding-right:0}" ++    "mtable.zen-cases mtd{padding-left:0;padding-right:0;text-align:left}" ++    "mtable.zen-cases mtd+mtd{padding-left:1em}" ++    "mtable.zen-aligned mtd{padding:0.7ex 0}" ++    "mtable.zen-aligned mtd:nth-child(2n+3){padding-left:1em}" ++    "mtable.zen-aligned mtd:nth-child(odd){text-align:right}" ++    "mtable.zen-aligned mtd:nth-child(even){text-align:left}" ++    "@supports (not (-webkit-backdrop-filter:blur(1px))) and (not (-moz-appearance:none)){" ++    "mtable.zen-cases mtd{text-align:-webkit-left}" ++    "mtable.zen-aligned mtd:nth-child(odd){text-align:-webkit-right}" ++    "mtable.zen-aligned mtd:nth-child(even){text-align:-webkit-left}" ++    "}" ++    "img{max-width:100%;height:auto}\n";

Source: lib/zen/src/theme/load.zig:75

zig
pub fn ownsPath(path: []const u8, files: Files) bool {    if (files.dir.len == 0) return false;    if (std.mem.eql(u8, path, files.dir)) return true;    return path.len > files.dir.len and        std.mem.startsWith(u8, path, files.dir) and        std.fs.path.isSep(path[files.dir.len]);}
Called byCallsNo direct callstest sourcelib.zen.src.theme.testtest: theme loads layout style and in...themeownsPath
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/zen/src/root.zig:40

zig
/// Page templates, source theme loading, and bounded page rendering.pub const theme = @import("theme/root.zig");

Source: lib/zen/src/theme/root.zig

zig
const defaults = @import("defaults.zig");const capacity_mod = @import("capacity.zig");const fill = @import("fill.zig");const load_mod = @import("load.zig");const model = @import("model.zig");const plan_mod = @import("plan.zig");const storage_mod = @import("storage.zig");pub const default_layout = defaults.default_layout;pub const default_style = defaults.default_style;pub const Theme = model.Theme;pub const Files = model.Files;pub const Include = model.Include;pub const Page = model.Page;pub const RenderLimits = plan_mod.Limits;pub const default_render_limits = plan_mod.default_limits;pub const RenderPlan = plan_mod.Plan;pub const RenderCapacity = capacity_mod.Capacity;pub const default_render_capacity = capacity_mod.default_capacity;pub const RenderStorage = storage_mod.Storage;pub const RenderStatus = storage_mod.Status;pub const RenderExhaustion = model.Exhaustion;pub const RenderError = model.Error;pub const renderPage = fill.renderPage;pub const Loaded = load_mod.Loaded;pub const Error = load_mod.Error || RenderError;pub const load = load_mod.load;pub const ownsPath = load_mod.ownsPath;

Audit

Definitions4
Public names4
Members0
Version26.7.0
Revisiondaab053ee433