Skip to content

Feature/typography #832

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 46 commits into from
May 24, 2024
Merged

Feature/typography #832

merged 46 commits into from
May 24, 2024

Conversation

oscarcarlstrom
Copy link
Contributor

@oscarcarlstrom oscarcarlstrom commented May 14, 2024

Komponenter for typografi

Implementerer komponent-klasser i tailwind for typografi:

  • Headings
  • Lead
  • Byline
  • Blockquoute
  • Body
  • Description
  • Footnote

Etter at Kristian konkludert med at Byline og Footnote nok ikke kommer til å brukes, utgår de inntil videre.

Størrelser og line-height

Det er satt line-height i rem, vi kunne også ha brukt unitless numbers. Men de ville gjort tallene lenger i mange tilfeller, siden nesten ingen fontstørrelser er i nærheten av å være delbare med 16px (base font-size). Dessuten måtte vi i så fall regnet om rem fra Figma til et tall som tilsvarer det samme for hver line-height, som ville tatt en del ekstra tid.

Det er satt 1rem font-size på de som skal ha det, selv om det som default vil arves fra <body/>. Dette er for å gjøre det mer eksplisitt, og likt for alle klassene/elementene. Samt gjøre det enklere å justere font-størrelsen i fremtiden, uten at man må skrive om template literals osv.

Prose

For å slippe å duplisere styling i både komponent-klassene og prose, er de fleste verdier dratt ut i et eget objekt typography.

For blockquote i prose er det gjort noen overrides av default styling som kommer fra tailwind-pluginen. Fant ingen annen måte å gjøre det på, så hvis noen har et forslag til hvordan det kan gjøres bedre er det helt supert.

TODO

Det som gjenstår her nå er å få inn riktig font for headings og quote i blockquote. Det blir en egen PR.

TBD

Vi har blitt enige om at om vi venter med å implementere typografi som React-komponenter. For å se an om det er behov for det. Og i så fall ta en grundig vurdering på hvordan det API-et skal se ut.

Eksempler

Med klasser

Screenshot 2024-05-22 at 13 48 53

Med prose

Screenshot 2024-05-22 at 13 49 26

Copy link

changeset-bot bot commented May 14, 2024

🦋 Changeset detected

Latest commit: c7169ae

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@obosbbl/grunnmuren-tailwind Major

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@oscarcarlstrom oscarcarlstrom requested a review from a team May 14, 2024 10:09
Copy link

netlify bot commented May 14, 2024

Deploy Preview for obos-grunnmuren ready!

Name Link
🔨 Latest commit c7169ae
🔍 Latest deploy log https://app.netlify.com/sites/obos-grunnmuren/deploys/665086cb788cc40008dff91d
😎 Deploy Preview https://deploy-preview-832--obos-grunnmuren.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

@ingara
Copy link
Contributor

ingara commented May 14, 2024

Jeg syns ikke det føles så godt å måtte skrive

      <H1 {...args}>Grunnmuren</H1>
      <Body>Grunnmuren er designsystemet til OBOS.</Body>
      <H2 {...args}>Typografi</H2>
      <Body>
        Typografi defineres av både tailwind-klasser og react-komponenter.
      </Body>

Jeg heller mot

      <h1 {...args}>Grunnmuren</h1>
      <p class="body">Grunnmuren er designsystemet til OBOS.</p>
      <h2 {...args}>Typografi</h2>
      <p class="body">
        Typografi defineres av både tailwind-klasser og react-komponenter.
      </p>

eller noe sånt i stedet, ass.

Copy link
Contributor

@alexanbj alexanbj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Kan det være lurt å bare starte med tailwind-klassene? Holde react komponente utenfor for nå? Høre om det er noe folk eventuelt har lyst på?

Vi har vel allerede en generisk heading komponent også, så vi må tenke litt før vi eventuelt Computer til noe

@oscarcarlstrom
Copy link
Contributor Author

Jeg syns ikke det føles så godt å måtte skrive

      <H1 {...args}>Grunnmuren</H1>
      <Body>Grunnmuren er designsystemet til OBOS.</Body>
      <H2 {...args}>Typografi</H2>
      <Body>
        Typografi defineres av både tailwind-klasser og react-komponenter.
      </Body>

Jeg heller mot

      <h1 {...args}>Grunnmuren</h1>
      <p class="body">Grunnmuren er designsystemet til OBOS.</p>
      <h2 {...args}>Typografi</h2>
      <p class="body">
        Typografi defineres av både tailwind-klasser og react-komponenter.
      </p>

eller noe sånt i stedet, ass.

Skjønner! Jeg liker den første bedre jeg, jeg syns det ser ryddigere ut (etter en liten opprydding). Men fordelen med å implementere både React-komponenter og komponent-klasser er at man som konsument kan velge da?

Var litt teit av meg å ha med args her, siden det ikke er nødvendig, eller har noe å si for eksemplene som ligger her akkurat nå (har oppdatert det). Mulig jeg misforstår eksemplet ditt @ingara, men vi måtte nok ha scopet all styling til en klasse, og satt className="h1" osv. på heading-elementene uansett. Vet ikke om det var sånn du tenkte, men tror det kan bli litt risky med globale styles for for h1, h2 osv. Siden de taggene kan brukes i mange andre forskjellige kontekster. Det er jo f.eks. tilfelle med den Heading-komponenten som du nevner @alexanbj. Godt poeng! Var også litt derfor jeg tenkte i retning namespacing, for å prøve å skille de.

Det er vel for så vidt egentlig ikke noe i veien for å bruke samme API (bruke en level-prop), kanskje til og med gjenbruke noe av det vi har i Heading?

Men ja, høres ut som vi kan vente litt med React-komponentene for nå. Vi kan vel spørre i #grunnmuren-design-system?

@oscarcarlstrom
Copy link
Contributor Author

oscarcarlstrom commented May 14, 2024

Et annet argument for å implementere det som react-komponenter er jo at konsumenten ikke trenger å forholde seg til å velge riktig HTML-tag ift. semantikk. Det syns i hvert fall jeg er en veldig god ting, siden grunnmuren skal gjøre det enklere å lage løsninger som er universelt utformet.

@alexanbj alexanbj requested a review from aulonm May 21, 2024 08:48
Copy link
Collaborator

@aulonm aulonm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Jeg er litt usikker på om det bør bare være body eller description, eller om det skal prefixes. Tenker det blir enklere når det er ordentlig dokumentasjon på alt dette og ikke bare i storybook så går greit for min del pr nå. Det som blir vanskelig er å få alle utviklerne til å huske at dette finnes, men kanskje ikke et så stort problem akkurat nå

Copy link
Collaborator

@aulonm aulonm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤓

oscarcarlstrom and others added 2 commits May 23, 2024 09:18
Co-authored-by: Aulon Mujaj <4094284+aulonm@users.noreply.github.com>
@aulonm
Copy link
Collaborator

aulonm commented May 23, 2024

Er det planer om å legge inn ingress ? Ser det bare i figma så brukes det ingress-størrelser også
-Desktop-Font-Size-Ingress, 26px

@oscarcarlstrom
Copy link
Contributor Author

oscarcarlstrom commented May 24, 2024

Er det planer om å legge inn ingress ? Ser det bare i figma så brukes det ingress-størrelser også -Desktop-Font-Size-Ingress, 26px

Ja @aulonm, det er den som heter lead her, følte det ble rart å blande inn norsk. Skal be Kristian oppdatere til Lead i Figma

@oscarcarlstrom oscarcarlstrom requested a review from alexanbj May 24, 2024 07:02
Copy link
Contributor

@alexanbj alexanbj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Det begynner å nærme seg nå 🥳

Comment on lines 232 to 242
'.heading-xl': {
[headingXl]: {},
},
'.heading-l': {
[headingL]: {},
},
'.heading-m': {
[headingM]: {},
},
'.h2': {
[h2]: {},
'.heading-s': {
[headingS]: {},
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

vi må fortsatt beholde .h1 til .h4 her, men markere de som deprecated. Ellers vil alle appene se helt feil ut når de oppgraderer til ny versjon.

Tenker at vi kan fjerne .h1 etc. når vi går bort fra canary.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Vet ikke om det var sånn her du mente med deprecate de, men er eneste måten jeg kunne se for meg 🤷‍♂️

@oscarcarlstrom oscarcarlstrom requested a review from alexanbj May 24, 2024 10:40
Copy link
Contributor

@alexanbj alexanbj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pushet litt småpussing. Godkjent fra meg nå 👍

@alexanbj alexanbj merged commit 6482fad into main May 24, 2024
5 checks passed
@alexanbj alexanbj deleted the feature/typography branch May 24, 2024 12:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants