Changeset dd7e2a2 in Klonkt


Ignore:
Timestamp:
06/22/2026 02:52:43 AM (3 months ago)
Author:
roboburr <roboburr@…>
Branches:
main
Children:
b20460e
Parents:
5eff581
Message:

feat(theme): default = Klonkt brand (dark navy + yellow, matches klonkt.com)

New 'klonkt' palette (navy #0b0d12 / off-white #f3f1ea) + accent Klonkt yellow
#e8b04b, set as default for new sites + all fallbacks (ThemeService,
admin-sites, site.js, render, auth, server theme_color). site.js palette list
was stale (8) -> now complete (13). style.css [data-palette=klonkt] + buster v31.

Co-Authored-By: Claude <noreply@…>

Location:
src
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • src/assets/css/style.css

    r5eff581 rdd7e2a2  
    107107    --ink: #f4ede0; --ink-soft: #d4ccb8; --ink-muted: #a8a29e; --ink-faint: #6b6560;
    108108    --rule: #3d3833; --rule-2: #4d4740;
     109}
     110
     111/* ── KLONKT ── merk-standaard: off-white → donkerblauw (klonkt.com) ── */
     112[data-palette="klonkt"] {
     113    --paper: #f3f1ea; --paper-2: #e7e4d9;
     114    --ink: #11141c; --ink-soft: #2b3040; --ink-muted: #5b6473; --ink-faint: #9aa3b2;
     115    --rule: #d8d4c6; --rule-2: #c5c0af;
     116}
     117@media (prefers-color-scheme: dark) {
     118    [data-palette="klonkt"]:not([data-theme="light"]) {
     119        --paper: #0b0d12; --paper-2: #11141c;
     120        --ink: #f3f1ea; --ink-soft: #c8cdd6; --ink-muted: #9aa3b2; --ink-faint: #6b7280;
     121        --rule: #232a38; --rule-2: #2b3040;
     122    }
     123}
     124[data-theme="dark"][data-palette="klonkt"] {
     125    --paper: #0b0d12; --paper-2: #11141c;
     126    --ink: #f3f1ea; --ink-soft: #c8cdd6; --ink-muted: #9aa3b2; --ink-faint: #6b7280;
     127    --rule: #232a38; --rule-2: #2b3040;
    109128}
    110129
  • src/middleware/render.js

    r5eff581 rdd7e2a2  
    143143      const _navAccent = (_site && _site.accent && /^#[0-9a-fA-F]{6}$/.test(_site.accent))
    144144        ? _site.accent : '#c2410c';
    145       const _navPalette = (_site && _site.palette) ? _site.palette : 'sage';
     145      const _navPalette = (_site && _site.palette) ? _site.palette : 'klonkt';
    146146      const triggerJson = JSON.stringify({
    147147        pcmsNav: { bodyClass: locals.bodyClass, accent: _navAccent, palette: _navPalette },
  • src/middleware/site.js

    r5eff581 rdd7e2a2  
    103103 */
    104104export function loadTheme(req, res, next) {
    105   const PALETTES = ['sage','paper','ocean','forest','stone','midnight','sunset','cream'];
     105  const PALETTES = ['klonkt','sage','paper','ocean','forest','stone','midnight','sunset','cream','rose','slate','mint','lilac'];
    106106 
    107107  const user = req.session?.user;
     
    111111  const palette = (user && PALETTES.includes(user.palette) ? user.palette : null)
    112112                || (site && PALETTES.includes(site.palette) ? site.palette : null)
    113                 || 'sage';
     113                || 'klonkt';
    114114 
    115115  res.locals.palette = palette;
  • src/routes/admin-sites.js

    r5eff581 rdd7e2a2  
    109109    tagline: '',
    110110    language: 'nl',
    111     palette: 'sage',
    112     accent: '#c2410c',
     111    palette: 'klonkt',
     112    accent: '#e8b04b',
    113113    profile_photo: '',
    114114    profile_enabled: 1,
     
    232232    ownerId,
    233233    f.language || 'nl',
    234     f.palette || 'sage',
    235     ThemeService.validateAccent(f.accent) || '#c2410c',
     234    f.palette || 'klonkt',
     235    ThemeService.validateAccent(f.accent) || '#e8b04b',
    236236    f.profile_photo || null,
    237237    f.is_public ? 1 : 0,
     
    291291  // accent: only accept colors from the curated ACCENTS list. Falls back to
    292292  // the orange default if the submitted value isn't recognised.
    293   const accent = ThemeService.validateAccent(f.accent) || '#c2410c';
     293  const accent = ThemeService.validateAccent(f.accent) || '#e8b04b';
    294294
    295295  db.prepare(`
     
    312312    (f.tagline || '').slice(0, 200),
    313313    f.language || 'nl',
    314     f.palette || 'sage',
     314    f.palette || 'klonkt',
    315315    accent,
    316316    themeOverride,
  • src/routes/auth.js

    r5eff581 rdd7e2a2  
    164164  }
    165165
    166   req.session.user = { id: userId, username, email, role: 'god', palette: 'sage', theme: 'dark' };
     166  req.session.user = { id: userId, username, email, role: 'god', palette: 'klonkt', theme: 'dark' };
    167167  res.redirect(next || '/');
    168168});
  • src/server.js

    r5eff581 rdd7e2a2  
    329329    orientation: 'any',
    330330    background_color: '#1a1a17',
    331     theme_color: site?.accent || '#c2410c',
     331    theme_color: site?.accent || '#e8b04b',
    332332    lang: site?.language || 'nl',
    333333    icons: [
  • src/services/ThemeService.js

    r5eff581 rdd7e2a2  
    1919  // wordt toegepast); de accent-stip is een representatieve kleur per palet.
    2020  static PALETTES = {
     21    // Merk-standaard — komt overeen met klonkt.com (donkerblauw + geel).
     22    klonkt: {
     23      name: 'Klonkt',
     24      light: { paper: '#f3f1ea', ink: '#11141c', accent: '#c98a2a' },
     25      dark: { paper: '#0b0d12', ink: '#f3f1ea', accent: '#e8b04b' }
     26    },
    2127    sage: {
    2228      name: 'Sage',
     
    9197  // meer warme + paars/roze variatie. Allemaal leesbaar op licht én donker.
    9298  static ACCENTS = [
     99    { key: 'klonkt',  name: 'Klonkt-geel', color: '#e8b04b' },
    93100    { key: 'red',     name: 'Rood',      color: '#dc2626' },
    94101    { key: 'orange',  name: 'Oranje',    color: '#ea580c' },
     
    125132   */
    126133  static getPalette(paletteKey) {
    127     return this.PALETTES[paletteKey] || this.PALETTES.sage;
     134    return this.PALETTES[paletteKey] || this.PALETTES.klonkt;
    128135  }
    129136
     
    197204  static generateThemeMeta(userTheme, userPalette, siteTheme, siteAccent) {
    198205    const theme = userTheme || siteTheme || 'dark';
    199     const palette = userPalette || 'sage';
    200     const accent = siteAccent || '#c2410c';
     206    const palette = userPalette || 'klonkt';
     207    const accent = siteAccent || '#e8b04b';
    201208    const paletteData = this.getPalette(palette);
    202209    const colors = theme === 'dark' ? paletteData.dark : paletteData.light;
  • src/views/shell.ejs

    r5eff581 rdd7e2a2  
    163163
    164164<!-- v9 stylesheet (full palette system) -->
    165 <link rel="stylesheet" href="/assets/css/style.css?v=30">
     165<link rel="stylesheet" href="/assets/css/style.css?v=31">
    166166
    167167<!-- Audio player styles: loaded on every page so the mini-player works
Note: See TracChangeset for help on using the changeset viewer.