Grid
Grid brukes til Ä justere sideelementer basert pÄ sekvenserte kolonner og rader. Vi bruker denne kolonnebaserte strukturen for Ä plassere tekst, bilder og funksjoner pÄ en konsekvent mÄte gjennom hele designet.
Her er tre grunner til hvorfor du bĂžr bruke grid:
Konsekvens â Grid bygger oppsettet til grensesnittet og bidrar til konsekvente lĂžsninger ved hjelp av element plassering. Med grid sikrer vi bedre og enklere skanning av komponenter pĂ„ skjermen, som bidrar til en positiv brukeropplevelse.
Responsiv â Ved hjelp av grid vil det vĂŠre lettere Ă„ gjĂžre lĂžsningen responsiv, samtidig som du beholder en konsekvent layout.
Raskere designprosess Grid gir designere retningslinjer for proporsjoner mellom elementer, som avstand og marginer. Det forenkler arbeidet og redusere muligheten for feil. Et felles utgangspunkt rundt grid letter samarbeidet til bÄde designere og utviklere.
Hvordan bruke grid?
<section className="pkt-grid">
<div class="pkt-cell pkt-cell--span3">.pkt-cell pkt-cell--span3</div>
<div class="pkt-cell pkt-cell--span3">.pkt-cell pkt-cell--span3</div>
<div class="pkt-cell pkt-cell--span3">.pkt-cell pkt-cell--span3</div>
<div class="pkt-cell pkt-cell--span3">.pkt-cell pkt-cell--span3</div>
</section>
Container
Grid containeren er brukt til Ä holde pÄ, gi luft til og plassere innholdet i en layout pÄ siden. Denne har klassen pkt-grid
. Default bredde pÄ containeren er 100%.
Dersom du Þnsker spacing pÄ venstre og hÞyre side av containeren kan du enten bruke modifier pkt-grid--padding
(16px pÄ smÄ skjermer og 32px pÄ store) eller bruke spacing-hjelpeklassene.
Med gridsystemet angir man ikke kolonner og rader, men celler.
En grid-celle er et rom du plasserer ditt innhold inni. Cellen fungerer som en celle i en tabell eller et regneark. Cellen fyller plassen pÄ raden sÄfremt det er plass, hvis ikke faller de automatisk ned til neste rad. Cellene i vÄrt gridsystem skal ha klassen pkt-cell
.
Hver celle tar opp 1/12 plass av GridContaineren, bruk modifiers om du Ăžnsker andre bredder.
Vi bruker en 12 kolonnes gridsystem basert pÄ CSS Grid Layout. Det anbefales sterkt Ä studere lenkene i bunnen av siden for Ä lÊre mer om CSS Grid Layout
Modifiers og helpers
pkt-grid
Type | Modifier / Helper | Default | Beskrivelse |
---|---|---|---|
Bredde | --phablet , --tablet , --tablet-big , --laptop , --desktop , --full | pkt-grid--full | Maksbredde pÄ containeren |
Justering | --left , --right , --center | pkt-grid--center | Justér container med margins |
Gutters / Gap | --gap-{spacing} , --colgap-{spacing} , --rowgap-{spacing} , --gap-{spacing}-{breakpoint}-up , --colgap-{spacing}-{breakpoint}-up , --rowgap-{spacing}-{breakpoint}-up | 16px / 32px | Les mer om gap under. |
Padding | --padding | ingen | Legger til 16px / 32px padding pÄ venstre og hÞyre side av grid-container |
Margins | mx-size-16 , mx-size-32-tablet-up | auto | Bruk vÄre hjelpeklasser for spacing |
pkt-cell
Type | Modifier / Helper | Default | Beskrivelse |
---|---|---|---|
Bredde | --span{n} , --span{n}-{breakpoint}-up | pkt-cell--span1 | Antall kolonner cellen skal gÄ over. Span gÄr fra 1 til 12 |
Justering | --left , --right , --center , --top , --center-vertical , --bottom | justify-self: auto | Justér innholdet i celle |
pkt-gap
Gap er rommet mellom to kolonner, ogsÄ kalt gutters. Default er disse:
- 16px for visningsomrÄde 767px og smalere.
- 32px for visningsomrÄde 768px og bredere.
Modifier / Helper | Beskrivelse |
---|---|
--gap-{spacing} | Gap mellom kolonner og rader. Alle verdier definert i spacing er tillatt. |
--colgap-{spacing} | Gap mellom kolonner. Alle verdier definert i spacing er tillatt. |
--rowgap-{spacing} | Gap mellom rader. Alle verdier definert i spacing er tillatt. |
--gap-{spacing}-{breakpoint}-up | Gap mellom kolonner og rader fra et breakpoint og oppover. |
--colgap-{spacing}-{breakpoint}-up | Gap mellom kolonner fra et breakpoint og oppover. |
--rowgap-{spacing}-{breakpoint}-up | Gap mellom rader fra et breakpoint og oppover. |
Eksempler
Responsiv grid
Tabellen under illustrerer hvordan pkt-grid
oppfĂžrer seg ved ulike breakpoints.
Dersom vi Ăžnsker at innholdet skal skalere med skjermbredden jobber vi med et fluid grid system
. Responsivt design benytter seg av denne mÄten Ä designe pÄ for Ä utnytte den tilgjengelige skjermplassen pÄ en hvilken som helst enhet. Fluid betyr at kolonnebredden hele tiden vil Þke/minke i stÞrrelse i det visningsomrÄdet endrer seg. Gap og marginer forblir samme stÞrrelse.
Mobile | Phablet | tablet | tablet-big | laptop | desktop | |
---|---|---|---|---|---|---|
pkt-grid--phablet | 100% | 36rem | 36rem | 36rem | 36rem | 36rem |
pkt-grid--tablet | 100% | 100% | 48rem | 48rem | 48rem | 48rem |
pkt-grid--tablet-big | 100% | 100% | 100% | 64rem | 64rem | 64rem |
pkt-grid--laptop | 100% | 100% | 100% | 100% | 80 rem | 80rem |
pkt-grid--desktop | 100% | 100% | 100% | 100% | 100% | 100rem |
pkt-grid--full | 100% | 100% | 100% | 100% | 100% | 100% |
âA fluid container will stretch to the outer boundaries of its outermost parent. Often, this is the browser, but in cases where a fluid grid is inside of a container between the browser and itself, it can still be fluid and 100% the width of its parent, but maybe not the browser.â
<section className="pkt-grid pkt-grid--phablet">
<div class="pkt-cell pkt-cell--span12">.pkt-grid--phablet</div>
</section>
Justering av grid
Dersom containeren ikke tar full bredde, er det mulighet til Ă„ justere containeren til venstre, midt eller hĂžyre. Default er venstre.
<section className="pkt-grid pkt-grid--phablet pkt-grid--left">
<div class="pkt-cell pkt-cell--span12">.pkt-grid--left</div>
</section>
Responsive celler
Lag en responsive layout ved Ä angi hvor stor andel av siden innholdet skal ha pÄ ulike skjermstÞrrelser.
- Full bredde pÄ mobil.
- 4 celler fordelt pÄ to rader fra tablet og opp
Resize nettleservinduet for Ă„ se hvordan det oppfĂžrer seg.
<section className="pkt-grid">
<div class="pkt-cell pkt-cell--span12 pkt-cell--span6-tablet-up">1</div>
<div class="pkt-cell pkt-cell--span12 pkt-cell--span6-tablet-up">2</div>
<div class="pkt-cell pkt-cell--span12 pkt-cell--span6-tablet-up">3</div>
<div class="pkt-cell pkt-cell--span12 pkt-cell--span6-tablet-up">4</div>
</section>
Automatisk wrapping
I dette eksempelet gÄr ikke breddene opp i 12, og de wrappes derfor automatisk ned pÄ linjen under. De to siste cellene faller dog fint pÄ plass.
<section className="pkt-grid">
<div class="pkt-cell pkt-cell--span6">6 kolonner</div>
<div class="pkt-cell pkt-cell--span7">7 kolonner</div>
<div class="pkt-cell pkt-cell--span8">8 kolonner</div>
<div class="pkt-cell pkt-cell--span4">4 kolonner</div>
</section>
Responsiv gap/gutter
En gap/ gutter pÄ 32px pÄ tablet og oppover. 16px under.
.pkt-gridâgap-size-16 pkt-gridâgap-size-32-tablet-up
.pkt-gridâgap-size-16 pkt-gridâgap-size-32-tablet-up
.pkt-gridâgap-size-16 pkt-gridâgap-size-32-tablet-up
.pkt-gridâgap-size-16 pkt-gridâgap-size-32-tablet-up
<section
className="pkt-grid pkt-grid--gap-size-16 pkt-grid--gap-size-32-tablet-up"
>
<div class="pkt-cell pkt-cell--span3">
.pkt-grid--gap-size-16 pkt-grid--gap-size-32-tablet-up
</div>
<div class="pkt-cell pkt-cell--span3">
.pkt-grid--gap-size-16 pkt-grid--gap-size-32-tablet-up
</div>
<div class="pkt-cell pkt-cell--span3">
.pkt-grid--gap-size-16 pkt-grid--gap-size-32-tablet-up
</div>
<div class="pkt-cell pkt-cell--span3">
.pkt-grid--gap-size-16 pkt-grid--gap-size-32-tablet-up
</div>
</section>
Les mer
- MDN - CSS Grid Layout
- Css-tricks - A Complete Guide to Grid
- CSS - In Real Life - Debugging CSS Grid Part 2: What the Fr(action)?
- CSS - In Real Life - Is it Time to Ditch the Design Grid?