GoPublic
00 — Living style guide

Brand & designguide

Det her er den levende designguide for gopublic.dk. Den viser tokens og komponenter, præcis som de er defineret i koden lige nu. Når brand.css ændres, ændres siden her automatisk.

02 — Farver

Farvepaletten

Semantiske tokens med to værdier — én for light, én for dark. Brug toggle'en herunder til at skifte mellem visningerne. Dark mode aktiveres i koden ved at sætte data-theme="dark" på en sektion eller page-wrapper.

Baggrunde & flader

Neutrale flader. Det første du vælger når du komponerer en sektion — derefter trækker du tekst- og accent-farver i forhold til den.

Paper--paper#FAF8F3Primær baggrund / cream
Surface--surface#F2EFE7Sekundær flade
Surface 2--surface-2#E5E0D5Linen — kort, captions
Navy--navy#122140Mørk surface — kort på lys side

Tekst & dyb baggrund

Ink-skalaen — fra primær overskrift til mute meta-tekst. Ink fungerer som tekst i light mode og som baggrund i dark mode.

Ink--ink#0A1628Stat sort — tekst i light, baggrund i dark
Ink soft--ink-soft#2A3447Sekundær tekst, lede
Muted--muted#5A6271Meta, captions, mute tekst

Primær — Royal-familien

Brand-blå. Royal er standard CTA og link-farve. Frost er soft-royal til callouts og baggrunde der skal læne sig op ad det primære.

Royal--royal#1F4FB8Primær CTA / link
Royal hover--royal-hover#143A8ERoyal hover-tilstand
Royal press--royal-press#0F2A6ERoyal pressed
Frost--frost#D8DEEASoft royal — callouts
Frost deep--frost-deep#93AEECSoft royal — accent

Status & accent

Semantiske farver til alerts, badges og status-toner. Hot må kun bruges én gang pr. side — det er vores stærkeste accent.

Hot--hot#C73F36Embeds-rød — max én pr. side
Hot soft--hot-soft#F4D0CDHot alert-baggrund
Positive--positive#1F6E4ESuccess / positiv handling
Positive soft--positive-soft#C8E4D6Positive alert-baggrund
Warning--warning#B26A1FAdvarsel / jordnær accent
Warning soft--warning-soft#F6E7CESand — warm baggrundsflade
02b — Dark mode

Sådan ser dark mode ud

Samme komponenter, samme tokens — bare flippet. Træk data-theme="dark" på en page-wrapper eller en sektion, og alle child-elementer arver det mørke farvepalet automatisk.

Dark-mode preview

Embedsmandens platform

Samme typografi-hierarki, samme tokens — bare flippet til den mørke side. Brugbart til presentationer, login-flow, eller sider hvor mørk æstetik passer bedre.

TagStatus
InfoAlerts respekterer også dark-tokens. Lyse felter bliver til mørkere variation, mørke felter til lysere.

Sådan opter en side ind

// I din page.tsx:
<div data-theme="dark" className="page-dark">
  <SiteNav />
  {/* alt indenfor bruger dark tokens */}
</div>

Eller scope'et mindre: bare en enkelt sektion på en ellers lys side. data-theme="dark" virker hvor som helst i træet.

02c — Farvekombinationer

Seks baggrundsflader

Når du bygger en sektion, vælger du én af de seks flader herunder. Hver flade definerer hvilke farver pre-heading, overskrift, brødtekst, knapper, tags og hairline skal have. Bland ikke recepter — hver flade er et selvstændigt farveklima.

Paper--paper#FAF8F3
— Eksempel · Kombination

Overskrift på fladen

Brødtekst sat med Inter. Lede og body deler farveniveau. Hairline trækker en stille adskillelse.


TagStatus
Tekniske detaljer
Pre-heading--royal
Overskrift--ink
Lede / brødtekst--ink-soft
Sekundær / meta--muted
Hairline--rule-color
Primær knap--royal · --on-royal
Sekundær knapghost · --ink border + tekst
Tagsalle toner virker
Ink--ink#0A1628
— Eksempel · Kombination

Overskrift på fladen

Brødtekst sat med Inter. Lede og body deler farveniveau. Hairline trækker en stille adskillelse.


TagStatus
Tekniske detaljer
Pre-heading--muted (lyse i dark)
Overskrift--ink (= paper i dark)
Lede / brødtekst--ink-soft
Sekundær / meta--muted
Hairline--rule-color (13% paper)
Primær knap--royal · --on-royal
Sekundær knapghost · --paper border + tekst
Tagsfrost · positive · warning
Royal--royal#1F4FB8
— Eksempel · Kombination

Overskrift på fladen

Brødtekst sat med Inter. Lede og body deler farveniveau. Hairline trækker en stille adskillelse.


TagStatus
Tekniske detaljer
Pre-heading--warning-soft
Overskrift--paper
Lede / brødtekst--paper @ 92%
Sekundær / meta--paper @ 65%
Hairlinergba(paper, 0.22)
Primær knap--ink · --paper
Sekundær knapghost · --paper border + tekst
Tagswarning-soft · paper-soft · frost
Frost--frost#D8DEEA
— Eksempel · Kombination

Overskrift på fladen

Brødtekst sat med Inter. Lede og body deler farveniveau. Hairline trækker en stille adskillelse.


TagStatus
Tekniske detaljer
Pre-heading--royal-press
Overskrift--ink
Lede / brødtekst--ink-soft
Sekundær / meta--muted
Hairlinergba(ink, 0.14)
Primær knap--royal · --on-royal
Sekundær knapghost · --royal-press border + tekst
Tagsroyal · warning · neutral
Warning Soft (sand)--warning-soft#F6E7CE
— Eksempel · Kombination

Overskrift på fladen

Brødtekst sat med Inter. Lede og body deler farveniveau. Hairline trækker en stille adskillelse.


TagStatus
Tekniske detaljer
Pre-heading--warning
Overskrift--ink
Lede / brødtekst--ink-soft
Sekundær / meta--muted
Hairlinergba(ink, 0.18)
Primær knap--ink · --paper
Sekundær knapghost · --ink border + tekst
Tagswarning · hot · neutral
Positive Soft--positive-soft#C8E4D6
— Eksempel · Kombination

Overskrift på fladen

Brødtekst sat med Inter. Lede og body deler farveniveau. Hairline trækker en stille adskillelse.


TagStatus
Tekniske detaljer
Pre-heading--positive
Overskrift--ink
Lede / brødtekst--ink-soft
Sekundær / meta--muted
Hairlinergba(ink, 0.18)
Primær knap--positive · --paper
Sekundær knapghost · --ink border + tekst
Tagspositive · neutral
Hot Soft--hot-soft#F4D0CD
— Eksempel · Kombination

Overskrift på fladen

Brødtekst sat med Inter. Lede og body deler farveniveau. Hairline trækker en stille adskillelse.


TagStatus
Tekniske detaljer
Pre-heading--hot
Overskrift--ink
Lede / brødtekst--ink-soft
Sekundær / meta--muted
Hairlinergba(ink, 0.18)
Primær knap--hot · --paper
Sekundær knapghost · --ink border + tekst
Tagshot · neutral
03 — Typografi

Family, Inter, JetBrains Mono

Display sættes i Family (Klim). Brødtekst i Inter. Meta-labels og kode i JetBrains Mono.

.t-display96 / 1.06
Embedsmandens platform
.t-h164 / 1.06
Embedsmandens platform
.t-h248 / 1.10
Embedsmandens platform
.t-h332 / 1.20
Embedsmandens platform
.t-h424 / 1.25
Embedsmandens platform
.t-lede21 / 1.50
Vi bygger digital infrastruktur til den offentlige sektor.
.t-body16 / 1.55
Vi bygger digital infrastruktur til den offentlige sektor.
.t-small13 / 1.50
Vi bygger digital infrastruktur til den offentlige sektor.
.t-mono13 / 1.50
console.log('GoPublic')
03b — Typografi-regler

Regler for overskrifter

Hold overskrifter rene. Brug farve, ikke italic, til at fremhæve enkelte ord. Og drop det afsluttende punktum — overskrifter er ikke sætninger.

Bland ikke regular og italic

En overskrift er enten helt regular eller helt italic — aldrig en blanding. Skift af typografi midt i en sætning skaber visuel støj.

Gør

Til staten

Lad være

Til staten

Brug ikke skiftende farver

Overskrifter står i én farve — ink. Brug ikke royal, hot eller andre farver til at fremhæve enkelte ord midt i en overskrift. Lad sproget bære vægten, ikke farven.

Gør

Til staten

Lad være

Til staten

04 — Mellemrum

Spacing scale

Niendetrins skala fra 4 til 96 px. Sektioner bruger typisk space-9 vertikalt.

--space-14px
--space-28px
--space-312px
--space-416px
--space-524px
--space-632px
--space-748px
--space-864px
--space-996px
05 — Hjørner

Radius

Fra hårde til pill-formede.

Small--radius-sm · 4px
Button--radius-btn · 999px
Card--radius-card · 8px
Large--radius-lg · 12px
Pill--radius-pill · 999px
05b — Tags

Labels & pills

Ét system, tre roller: kategori-labels (sm), filter-pills (lg + interactive), og status-badges. Same mono DNA — kombinér størrelse + tone.

Sizes — sm / md / lg
SmallMediumLarge
Tones
NeutralRoyalFrostHotPositiveWarning
Med count (filter-pill mønster)
Bruges på sitet som
  • tag tag--lg tag--interactive · filter-pills i Kundeoversigt
  • tag tag--sm tag--frost / tag--hot · event-type på /events
  • tag tag--sm tag--royal · status-badges (fx Beta)
06 — Knapper

Buttons

Fire varianter, tre størrelser. Primary er den eneste der må være på en side ad gangen — sekundære understøtter.

Med ikon

Ikon kan stå før eller efter teksten. Brug Font Awesome Sharp. Højrestillede pile signalerer fremad-bevægelse (læs mere, næste trin); venstre-pile bruges til tilbage-navigation. Andre ikoner (kalender, download, mail) står typisk før teksten.

06b — Kort

Kort med billede

Når et kort bærer et billede, skal billedet altid gå edge-to-edge i toppen. Resten af indholdet — eyebrow, overskrift, body, CTA — lever i en padded __inner wrapper. Bland aldrig padded-billede og full-bleed-billede i samme komponent-familie.

Billede · edge-to-edge
Inner · padded— No. 01 · Eksempel

Korttitel

Kort beskrivelse. Body, lede eller hvad kortet bærer.

Anatomi

Billede
Full-bleed øverst. aspect-ratio 16/9 eller 16/10. Klippes af kortets border-radius.
Inner
Padding 24–32px. Indeholder al tekst og CTA. Får flex: 1 så højde fyldes ud.
Yderkort
overflow: hidden + border-radius så billedet klippes pænt til de runde hjørner.
CTA
Cirkulær pil, bottom-right via margin-top: auto + align-self: flex-end. Aligner på tværs af kort i grid.

Reference-implementationer: SegmentsSection.tsx (forsiden) og start-her/page.tsx.

07 — Alerts

Beskeder

Fire toner — information, advarsel, positiv, fejl.

InformationVi sidder klar mandag til fredag mellem 9 og 16.
AdvarselHusk at tilføje alt-tekst til billedet før udgivelse.
GemtDine ændringer er gemt og publiceret.
FejlSagen kunne ikke sendes — prøv igen om et øjeblik.
08 — Callout

Callouts

Til redaktionelle fremhævninger i et flow.

God praksis. Brug callouts sparsomt — én pr. afsnit, max to pr. side. Når alt fremhæves, fremhæves intet.
09 — Stemme

Sådan lyder vi

GoPublic er rolig, konkret og diskret dansk. Vi lover ikke; vi dokumenterer. Vi overrasker ikke; vi leverer det, der er aftalt. Stemmereglerne er korte, fordi de bør være indlysende efter at have læst en hvilken som helst anden GoPublic-side.

Konkret

Regel 01

“350 organisationer”, ikke “mange kunder”. “Siden 2003”, ikke “i mange år”. Stemmen skaber tillid gennem tal, datoer og navne — aldrig gennem tillægsord.

Rolig

Regel 02

Ingen udråbstegn. Ingen “fantastisk”, “bedste”, “revolutionerende”. En overskrift skal kunne forsvares i et udbudsdokument og citeres i en pressemeddelelse samtidig.

Dansk

Regel 03

Den danske version er kilden. Engelsk er en oversættelse, ikke en parallel stemme. Undgå SaaS-engelske vendinger på begge sprog.

Stemmen i praksis

Gør / gør ikke
Gør
  • Et CMS bygget til den danske offentlige sektor.
  • 350 organisationer publicerer på GoPublic hver dag.
  • Vi har gjort det her siden 2003.
  • WCAG 2.2 AA er udgangspunktet, ikke et tilvalg.
Gør ikke
  • Det næste generations CMS, gentænkt.
  • Hundredvis af glade kunder elsker os!
  • Vi har lavet det her i mange år.
  • Tilgængelighed først, AI-drevet, fremtidssikret.
10 — Applikationer

UI uden for websitet

GoPublic er mere end websitet. Roadmap, GoPublic Brain (CRM) og Theme Creator er arbejdsværktøjer med deres egne komponenter — men de skal være umiskendeligt GoPublic. Paletten, ikonerne og stemmen følger med. Typografien gør ikke: i applikationer er Inter den eneste skrift.

Kun Inter

Regel 01

Display-fonten (Family/Newsreader) er reserveret til redaktionelle flader: websitet og keynotes. I applikationer sættes alt — overskrifter, brødtekst, tal og labels — i Inter. Hierarki skabes med vægt og størrelse, aldrig med skift af typeface. Eneste undtagelse: JetBrains Mono til kode og tekniske værdier.

Paletten er kontrakten

Regel 02

Alle farver læses fra brand-tokens — ingen egne hex-værdier, ingen nye grånuancer. Paper og Ink er fladerne, Royal er primær handling, og statusfarverne bruges til tilstande (positiv, advarsel, fejl) — ikke til pynt. Når tokens er kilden, følger dark mode med gratis.

Font Awesome Sharp

Regel 03

Samme ikonkit som websitet: Font Awesome Sharp — light som standardvægt, solid til aktive og udfyldte tilstande. Ikonet er altid aria-hidden; teksten bærer betydningen. Ingen andre ikon-biblioteker, ingen emoji som ikoner.

Overskrifter uden display-font

Family signalerer redaktionelt indhold — i et værktøj er den støj. App-overskrifter sættes i Inter; differencen ligger i vægt og størrelse, ikke i typeface.

Gør

Opret nyt roadmap

Lad være

Opret nyt roadmap

Tjekliste til app-teams

Gør / gør ikke
Gør
  • Læs farver, radius og spacing fra brand-tokens.
  • Sæt al tekst i Inter — vægt og størrelse skaber hierarkiet.
  • Brug Font Awesome Sharp med tekstlabel ved siden af.
  • Genbrug tag-, knap- og alert-mønstrene hvor de giver mening.
Gør ikke
  • Family eller Newsreader i applikations-UI.
  • Egne hex-værdier eller grånuancer udenom paletten.
  • Andre ikon-biblioteker — eller emoji som ikoner.
  • Nye radius- eller spacing-værdier.
Tokens er kontrakten.Applikationer behøver ikke at genbruge websitets komponenter én til én — men farver, radius, spacing og ikoner skal læses fra de samme tokens. Så følger dark mode og fremtidige brandjusteringer med uden ekstra arbejde.