115 lines
6.1 KiB
CSS
115 lines
6.1 KiB
CSS
/* ---------------------------------------------------------------------------
|
||
kjol-website — brand stylesheet for the Kjol JS Web section (/js/*).
|
||
---------------------------------------------------------------------------
|
||
There is deliberately no `@import "tailwindcss"` here. The bundler compiles this
|
||
file via tw.CompileApp, which PREPENDS kjol's shared extension layer
|
||
(tw/kjol_theme.css); that layer does the import — an @import has to come first,
|
||
and this file no longer is. See jsbundler/css.go and the header of kjol_theme.css.
|
||
|
||
What is left is only what is genuinely this app's: the brand.
|
||
|
||
The values below match the Go/WASM section's css/app.css on purpose — same
|
||
Open Sans, same navy accent — so that crossing between /wasm and /js reads as
|
||
two parts of ONE site rather than two demos that happen to share a domain. The
|
||
two sections are built by completely different pipelines; they should not look
|
||
like it.
|
||
--------------------------------------------------------------------------- */
|
||
|
||
/* Open Sans — self-hosted (files in wwwroot/fonts). One variable file per subset
|
||
carries weights 400–700 upright and italic. unicode-range keeps the browser to the
|
||
one subset a glyph needs; font-display: swap paints the fallback first. The same four
|
||
blocks live in the /wasm side's css/app.css so both front-ends share one typeface. */
|
||
@font-face {
|
||
font-family: "Open Sans";
|
||
font-style: normal;
|
||
font-weight: 400 700;
|
||
font-display: swap;
|
||
src: url("/fonts/opensans-latin-normal.woff2") format("woff2");
|
||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||
}
|
||
@font-face {
|
||
font-family: "Open Sans";
|
||
font-style: normal;
|
||
font-weight: 400 700;
|
||
font-display: swap;
|
||
src: url("/fonts/opensans-latin-ext-normal.woff2") format("woff2");
|
||
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||
}
|
||
@font-face {
|
||
font-family: "Open Sans";
|
||
font-style: italic;
|
||
font-weight: 400 700;
|
||
font-display: swap;
|
||
src: url("/fonts/opensans-latin-italic.woff2") format("woff2");
|
||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||
}
|
||
@font-face {
|
||
font-family: "Open Sans";
|
||
font-style: italic;
|
||
font-weight: 400 700;
|
||
font-display: swap;
|
||
src: url("/fonts/opensans-latin-ext-italic.woff2") format("woff2");
|
||
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||
}
|
||
|
||
@theme {
|
||
/* The UI typeface — see the @font-face blocks above. This one line points the kit's
|
||
font-sans utilities and the html rule below onto Open Sans. */
|
||
--font-sans: "Open Sans", ui-sans-serif, system-ui, sans-serif;
|
||
|
||
/* The brand: navy throughout, a muted flag-navy. These are the SAME values the Go/WASM
|
||
section's css/app.css sets, and under the same names — so the Layers menu, the
|
||
sidebar highlight and the callouts are the same navy on both sides of the site rather
|
||
than two navies that happen to be close.
|
||
|
||
primary FILLS (white text sits on it); accent is TEXT and icons (it has to be
|
||
readable on the surface) and is a slightly deeper navy so a link reads as one;
|
||
primary-subtle/-border are the tinted panel. Only the flag tile keeps a red. */
|
||
--color-primary: #1e3a63; /* muted navy — fills; they carry white text */
|
||
--color-primary-hover: #16294a;
|
||
--color-primary-subtle: #eef2f8; /* a navy wash — tinted panels, callouts */
|
||
--color-primary-border: #c5d1e2;
|
||
--color-accent: #1c3a66; /* navy — accent TEXT (links, eyebrow, active rows) */
|
||
|
||
}
|
||
|
||
/* Only the font. The page's background and text colour come from the shared
|
||
scaffold's `html` rule, which paints them from --color-surface / --color-ink —
|
||
the tokens the .dark block re-points. Setting them here would pin the page to
|
||
white and leave a dark app sitting in a white window. */
|
||
html {
|
||
font-family: var(--font-sans);
|
||
}
|
||
|
||
/* The dark values for the brand.
|
||
---------------------------------------------------------------------------
|
||
Navy is too dark to read on a near-black page, so both brand tokens climb to a lighter
|
||
blue. The accent (TEXT) climbs furthest, to a soft sky a link stays legible in; the fill
|
||
climbs less, to a steel blue that still looks like a button and still carries white text.
|
||
And the tinted panel inverts outright, because a pale wash on #101013 is not a tint, it
|
||
is a white box.
|
||
|
||
Same values, same names, as the Go/WASM section's css/app.css. */
|
||
.dark {
|
||
--color-accent: #9fc1ec;
|
||
--color-primary: #2b4f80;
|
||
--color-primary-hover: #37619b;
|
||
--color-primary-subtle: #182234;
|
||
--color-primary-border: #2c3e5c;
|
||
}
|
||
|
||
/* The wordmark's logo tile: a muted Norwegian flag. Identical to the Go/WASM section's
|
||
css/app.css — the two front-ends share one mark. See there for the full note; in short
|
||
it is the flag's Scandinavian cross (navy cross, off-white outline, red field, offset
|
||
left) drawn in layered gradients over a red base, constant across themes, with a flat
|
||
dark scrim on top so the plain white sailboat reads on it without an outline. */
|
||
.flag-no {
|
||
background-color: #a83f4c;
|
||
background-image:
|
||
linear-gradient(rgba(0, 0, 0, 0.42), rgba(0, 0, 0, 0.42)),
|
||
linear-gradient(180deg, transparent 44.5%, #294c76 44.5%, #294c76 55.5%, transparent 55.5%),
|
||
linear-gradient(90deg, transparent 32.5%, #294c76 32.5%, #294c76 43.5%, transparent 43.5%),
|
||
linear-gradient(180deg, transparent 39%, #ece6da 39%, #ece6da 61%, transparent 61%),
|
||
linear-gradient(90deg, transparent 27%, #ece6da 27%, #ece6da 49%, transparent 49%);
|
||
}
|