Vi benytter et tolv-spalters grid-system laget med CSS Grid til å utforme sidemaler. Grid-systemet har egne klasser for å endre layout på mobil og nett-brett, og dersom ingen egne klasser for mobil og nett-brett er satt, vil elementet automatisk falle tilbake til å dekke hele skjermens bredde.
Enkelt forklart
For å ta i bruk grid-systemet trenger du to ting:
-
En grid-container med klasse-navnet
grid
. Dette gjør at containeren får riktig display og layoutdeling. Typiske elementer du vil bruke her er blokk-elementer som<section>
eller<div>
. -
En rekke elementer inne i grid-containeren med klasser som begynner med
span-
satt på seg.
Fremfor å benytte klasse-navn som sier hvor mange spalter et element skal dekke, benytter vi heller klasse-navn som sier hvilket forholdstall elementet dekker i forhold til containeren. Klasse-navnene du kan bruke er:
span-whole
span-three-quarters
span-two-thirds
span-half
span-third
span-quarter
span-sixth
I tillegg kan du legge på -on-tablet
og
-on-mobile
på slutten av et klasse-navn dersom det skal gjelde
kun for nett-brett eller kun for mobil. Merk at dette ikke gjelder for alle
klassene; se implementasjonen for detaljer.
Vanlig oppførsel er at grid elementer hopper en rad opp om det er plass, men
om man ønsker at elementet skal forbli på raden den er så kan man bruke
-fill-rest
for å forandre strøelse men ikke posisjon
<section class="grid">
<div class="span-third span-half-on-tablet span-whole-on-mobile>
<p>
Jeg vises som en tredjedel av bredden til vanlig, halvparten av bredden
på nettbrett og hele bredden på mobil. Smart, hva?
</p>
</div>
</section>
Grid konfigurasjoner
Span-whole eksempler
Help-text vises som ekstra info som brukeren kan vise/skjule.
Det er ønskelig å bruke denne minst mulig:
- Målet burde alltid være at Label alene kommuniserer med klarhet hva som skal fylles ut.
- Dersom dette ikke lar seg gjøre kan Help-text brukes.
PS. Help-text "slotten" trenger ikke nødvendigvis å være en div.
<div class="grid" style="align-items: end;">
<lk-input-block
guid="spm1"
input-name="spm1"
label="Label teksten fungerer som felt-overksrifter"
placeholder="Placeholder brukes som eksempel-input"
required-message="Required-message vises hvis feltet er tomt etter at brukeren har markert feltet"
error-message="Error-message vises om det er en feil i brukeren sin input"
class="span-whole"
></lk-input-block>
<lk-input-block
guid="spm2"
input-name="spm2"
label="Label teksten fungerer som felt-overksrifter"
placeholder="Placeholder brukes som eksempel-input"
required-message="Required-message vises hvis feltet er tomt etter at brukeren har markert feltet"
error-message="Error-message vises om det er en feil i brukeren sin input"
class="span-whole"
>
<div slot="help-text">
<p>Help-text vises som ekstra info som brukeren kan vise/skjule.</p>
<p>Det er ønskelig å bruke denne minst mulig:</p>
<ul>
<li>Målet burde alltid være at Label alene kommuniserer med klarhet hva som skal fylles ut.</li>
<li>Dersom dette ikke lar seg gjøre kan Help-text brukes.</li>
</ul>
</div>
</lk-input-block>
<lk-input-block
guid="spm3"
input-name="spm3"
label="Label teksten fungerer som felt-overksrifter"
placeholder="Placeholder brukes som eksempel-input"
required-message="Required-message vises hvis feltet er tomt etter at brukeren har markert feltet"
error-message="Error-message vises om det er en feil i brukeren sin input"
class="span-whole"
>
<p slot="help-text">PS. Help-text "slotten" trenger ikke nødvendigvis å være en div.</p>
</lk-input-block>
<lk-input-block
guid="pid"
input-name="pid"
preset="personalid"
class="span-whole"
></lk-input-block>
<lk-input-block
guid="orgid"
input-name="orgid"
preset="organisationid"
class="span-whole"
></lk-input-block>
<lk-input-block
guid="datefrom"
input-name="datefrom"
label="Dato"
input-type="date"
min="2022-06-23"
max="today"
class="span-whole"
></lk-input-block>
</div>
Span-* eksempler
Help-text vises som ekstra info som brukeren kan vise/skjule.
Det er ønskelig å bruke denne minst mulig:
- Målet burde alltid være at Label alene kommuniserer med klarhet hva som skal fylles ut.
- Dersom dette ikke lar seg gjøre kan Help-text brukes.
PS. Help-text "slotten" trenger ikke nødvendigvis å være en div.
<div class="grid" style="align-items: end;">
<lk-input-block
guid="spm1"
input-name="spm1"
label="Label teksten fungerer som felt-overksrifter"
placeholder="Placeholder brukes som eksempel-input"
required-message="Required-message vises hvis feltet er tomt etter at brukeren har markert feltet"
error-message="Error-message vises om det er en feil i brukeren sin input"
class="span-half"
></lk-input-block>
<lk-input-block
guid="spm2"
input-name="spm2"
label="Label teksten fungerer som felt-overksrifter"
placeholder="Placeholder brukes som eksempel-input"
required-message="Required-message vises hvis feltet er tomt etter at brukeren har markert feltet"
error-message="Error-message vises om det er en feil i brukeren sin input"
class="span-half"
>
<div slot="help-text">
<p>Help-text vises som ekstra info som brukeren kan vise/skjule.</p>
<p>Det er ønskelig å bruke denne minst mulig:</p>
<ul>
<li>Målet burde alltid være at Label alene kommuniserer med klarhet hva som skal fylles ut.</li>
<li>Dersom dette ikke lar seg gjøre kan Help-text brukes.</li>
</ul>
</div>
</lk-input-block>
<lk-input-block
guid="spm3"
input-name="spm3"
label="Label teksten fungerer som felt-overksrifter"
placeholder="Placeholder brukes som eksempel-input"
required-message="Required-message vises hvis feltet er tomt etter at brukeren har markert feltet"
error-message="Error-message vises om det er en feil i brukeren sin input"
class="span-two-thirds"
>
<p slot="help-text">PS. Help-text "slotten" trenger ikke nødvendigvis å være en div.</p>
</lk-input-block>
<lk-input-block
guid="pid"
input-name="pid"
preset="personalid"
class="span-third"
></lk-input-block>
<lk-input-block
guid="orgid"
input-name="orgid"
preset="organisationid"
class="span-quarter"
></lk-input-block>
<lk-input-block
guid="datefrom"
input-name="datefrom"
label="Dato"
input-type="date"
min="2022-06-23"
max="today"
class="span-quarter"
></lk-input-block>
<lk-checkbox
class="span-half"
required
>
Jeg bekrefter ditten og datten
</lk-checkbox>
<lk-input-block
class="span-sixth"
guid="fullname"
input-name="fullname"
preset="fullname"
>
</lk-input-block>
<lk-input-block
class="span-sixth"
guid="street"
input-name="street"
preset="street"
>
<!--
preset="address"
-->
</lk-input-block>
<lk-input-block
class="span-sixth"
guid="postcode"
input-name="postcode"
preset="postcode"
>
<!--
preset="postalcode"
preset="zipcode"
-->
</lk-input-block>
<lk-input-block
class="span-half"
guid="postarea"
input-name="postarea"
preset="postarea"
>
<!--
preset="postalarea"
preset="ziparea"
-->
</lk-input-block>
</div>
Fill-rest eksempler
<div class="grid" style="align-items: end;">
<lk-input-block
class="span-half span-half-on-laptop span-half-on-tablet"
guid="apartmentnumber"
input-name="apartmentnumber"
preset="apartmentnumber"
>
<!--
preset="apartmentunitnumber"
preset="propertyunitnumber"
preset="dwellingnumber"
-->
</lk-input-block>
<lk-input-block
class="span-half-fill-rest"
guid="phone"
input-name="phone"
preset="phone"
>
<!--
preset="phonenumber"
-->
</lk-input-block>
<lk-input-block
class="span-third"
guid="mob"
input-name="mob"
preset="mob"
>
<!--
preset="mobile"
preset="mobilenumber"
-->
</lk-input-block>
<lk-input-block
class="span-third"
guid="email"
input-name="email"
preset="email"
>
<!--
preset="emailaddress"
-->
</lk-input-block>
<lk-input-block
class="span-third-fill-rest"
guid="pid"
input-name="pid"
preset="pid"
>
<!--
preset="personalid"
-->
</lk-input-block>
<lk-input-block
class="span-sixth"
guid="orgid"
input-name="orgid"
preset="orgid"
>
<!--
preset="organisationid"
-->
</lk-input-block>
<lk-input-block
class="span-sixth"
guid="account"
input-name="account"
preset="account"
>
<!--
preset="account"
preset="bankaccount"
-->
</lk-input-block>
<lk-input-block
class="span-sixth-fill-rest"
guid="clubname"
input-name="clubname"
preset="clubname"
>
</lk-input-block>
</div>
No gap eksempler
grid--no-gap
grid--no-column-gap
grid--no-row-gap
<div class="grid grid--no-gap">
<h3 class="small-title span-whole">grid--no-gap</h3>
<lk-input-block
guid="no-gap"
input-name="no-gap"
label="Label teksten fungerer som felt-overksrifter"
class="span-half"
></lk-input-block>
<lk-input-block
guid="no-gap2"
input-name="no-gap2"
label="Label teksten fungerer som felt-overksrifter"
class="span-half"
></lk-input-block>
<lk-input-block
guid="no-gap3"
input-name="no-gap3"
label="Label teksten fungerer som felt-overksrifter"
class="span-half"
></lk-input-block>
<lk-input-block
guid="no-gap4"
input-name="no-gap4"
label="Label teksten fungerer som felt-overksrifter"
class="span-half"
></lk-input-block>
</div>
<div class="grid grid--no-column-gap">
<h3 class="small-title span-whole">grid--no-column-gap</h3>
<lk-input-block
guid="no-column-gap"
input-name="no-column-gap"
label="Label teksten fungerer som felt-overksrifter"
class="span-half"
></lk-input-block>
<lk-input-block
guid="no-column-gap2"
input-name="no-column-gap2"
label="Label teksten fungerer som felt-overksrifter"
class="span-half"
></lk-input-block>
<lk-input-block
guid="no-column-gap3"
input-name="no-column-gap3"
label="Label teksten fungerer som felt-overksrifter"
class="span-half"
></lk-input-block>
<lk-input-block
guid="no-column-gap4"
input-name="no-column-gap4"
label="Label teksten fungerer som felt-overksrifter"
class="span-half"
></lk-input-block>
</div>
<div class="grid grid--no-row-gap">
<h3 class="small-title span-whole">grid--no-row-gap</h3>
<lk-input-block
guid="no-row-gap"
input-name="no-row-gap"
label="Label teksten fungerer som felt-overksrifter"
class="span-half"
></lk-input-block>
<lk-input-block
guid="no-row-gap2"
input-name="no-row-gap2"
label="Label teksten fungerer som felt-overksrifter"
class="span-half"
></lk-input-block>
<lk-input-block
guid="no-row-gap3"
input-name="no-row-gap3"
label="Label teksten fungerer som felt-overksrifter"
class="span-half"
></lk-input-block>
<lk-input-block
guid="no-row-gap4"
input-name="no-row-gap4"
label="Label teksten fungerer som felt-overksrifter"
class="span-half"
></lk-input-block>
</div>