Compare commits

...
Author SHA1 Message Date
github-actions[bot] ce1c6de935 Lerna versionbump [ci skip]
- @navikt/ds-css@0.12.6
 - @navikt/ds-react@0.14.2
 - @navikt/ds-react-internal@0.9.2
2021-12-21 14:02:07 +00:00
Ken 6f430ae69c [FIX] Switch-komponent (#1359) 2021-12-21 14:47:59 +01:00
github-actions[bot] ab03820591 Lerna versionbump [ci skip]
- @navikt/ds-css@0.12.5
2021-12-17 12:27:25 +00:00
Andreas Nordahl 9016c9bff4 [fix] selector specificity bug in zebra table (#1370) 2021-12-17 13:14:11 +01:00
github-actions[bot] 99ed25a0b4 Lerna versionbump [ci skip]
- @navikt/ds-css@0.12.4
 - @navikt/ds-react@0.14.1
 - @navikt/ds-react-internal@0.9.1
2021-12-17 10:23:03 +00:00
Andreas NordahlandKen 488168f6ed [fix] Table updates (#1369)
* adjust table sizes

* add table body row hover style

* add zebra style option to table

* add simple table row selection

* add table row hover dark borderC

* move table checkbox style to table.css

* small selection table

* fix token ref

* a11y table story for morten

* hack type errors

* fix id issue

* Update @navikt/core/css/table.css

Co-authored-by: Ken <26967723+KenAJoh@users.noreply.github.com>

* Update @navikt/core/css/table.css

Co-authored-by: Ken <26967723+KenAJoh@users.noreply.github.com>

* Update @navikt/core/css/table.css

Co-authored-by: Ken <26967723+KenAJoh@users.noreply.github.com>

* define table css custom props

Co-authored-by: Ken <26967723+KenAJoh@users.noreply.github.com>
2021-12-17 11:10:19 +01:00
Ken 12d81f8553 [ci skip] Fjernet ubrukte eksempler 2021-12-16 15:47:49 +01:00
Ken abcee8bad6 [ci skip] fjernet cron-job tokens 2021-12-16 15:37:46 +01:00
github-actions[bot] 815b07c3ff Lerna versionbump [ci skip]
- @navikt/ds-css@0.12.3
2021-12-16 10:04:44 +00:00
Ken 942d0c522a [FIX] FIkser bakgrunn for textarea (#1368) 2021-12-16 10:52:01 +01:00
Ken 34dfa9d1ee exitZeroOnChanges: false chromatic workflow 2021-12-15 22:57:46 +01:00
Ken fa3032d13c chromatic workflow 2021-12-15 22:09:47 +01:00
Ken b12086625a [ci skip] chromatic workflow 2021-12-15 17:56:32 +01:00
Ken c1e78d0359 [ci skip] chromatic workflow 2021-12-15 16:36:19 +01:00
Ken 7fbad47841 [ci skip] chromatic workflow 2021-12-15 15:13:07 +01:00
Ken 3c426e07e7 [ci skip] chromatic-workflow 2021-12-15 15:06:55 +01:00
Ken 662ab4cbfd [ci skip] Tester endring i conditionals, chromatic-workflow 2021-12-15 14:45:49 +01:00
Ken 85a816e415 [ci skip] Finner nå riktig chromatic comment i pr 2021-12-15 14:26:59 +01:00
Ken 613339f289 [ci skip] logger chromatic output 2021-12-14 17:17:10 +01:00
Ken 48b42c0a8f [ci skip] fikset comments 2021-12-14 16:57:28 +01:00
Ken a28b70343a get status for chromatic build in comments 2021-12-14 16:39:29 +01:00
Ken 762fa3ef08 continue-on-error for chromatic error 2021-12-14 16:17:18 +01:00
Ken 8bf95d7c58 splittet push og pr build 2021-12-14 15:39:25 +01:00
Ken 3a08d0e25c la til commit-sha i chromatic melding 2021-12-14 15:21:31 +01:00
Ken 685b443374 chromatic-status fix 2021-12-14 15:18:22 +01:00
Ken d107eecc93 la til chromatic status i comment 2021-12-14 15:06:20 +01:00
Ken 879d8f6306 workflow for chromatic pr, fjernet vercel 2021-12-14 15:04:06 +01:00
github-actions[bot] 6641304e0e Lerna versionbump [ci skip]
- @navikt/ds-css@0.12.2
2021-12-14 11:03:29 +00:00
Ken d56d329547 [FIX] button:disabled opacity til 0.3, tidligere 30% (#1363) 2021-12-14 11:48:29 +01:00
Ken afefca5b46 Update chromatic.yml 2021-12-14 11:30:57 +01:00
Ken 918a189c3e oppdatert workflow 2021-12-14 11:15:13 +01:00
Ken bef36ccf81 workflow for chromatic PR 2021-12-14 11:13:13 +01:00
github-actions[bot] 80ad6349e2 Lerna versionbump [ci skip]
- @navikt/ds-css@0.12.1
2021-12-13 12:41:19 +00:00
Ken 67dc10d290 [FIX] active:disabled styling for button (#1360) 2021-12-13 13:25:59 +01:00
Ken 05477b273e fikset alias for vercel deploy 2021-12-13 11:23:13 +01:00
Ken 0b05928f69 vercel workflow- kjører ikke dev på master push 2021-12-13 11:02:41 +01:00
Ken f5b2012245 vercel workflow fix 2021-12-13 11:01:08 +01:00
Ken 3b59d03bca vercel workflow 2021-12-13 10:59:48 +01:00
Ken 794c6fea4e oppdatert gitignore 2021-12-13 10:51:10 +01:00
Ken 01cc0b3703 Update README.md 2021-12-10 13:13:49 +01:00
github-actions[bot] 36d98e1d19 Lerna versionbump [ci skip]
- @navikt/ds-css@0.12.0
 - @navikt/ds-icons@0.7.0
 - @navikt/ds-react@0.14.0
 - @navikt/ds-tokens@0.7.0
 - @navikt/ds-css-internal@0.7.0
 - @navikt/ds-react-internal@0.9.0
2021-12-07 15:12:59 +00:00
705b2cbe9c [FEATURE] Tokens migrering (#1332)
Co-authored-by: Andreas Nordahl <andnorda@gmail.com>
Co-authored-by: KenAJoh <KenAJoh@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2021-12-07 15:53:48 +01:00
dependabot[bot] 2fc2572d93 Bump prismjs from 1.23.0 to 1.25.0 (#1354)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-07 15:31:21 +01:00
Ken 5fd0b3cffd hotfix god-praksis accordion margin-bottom 2021-12-07 15:07:51 +01:00
Ken ead802c0d8 hotfix god-praksis accordion margin-bottom 2021-12-07 13:41:54 +01:00
Ken eb9ca68e5c Update README.md 2021-12-07 13:11:39 +01:00
Ken 89a604bd57 Fjernet lvl2 toc fra god-praksis template 2021-12-06 16:23:14 +01:00
Ken 9465cdf30a [FEATURE] React og @types/react til v17 i peerDep (#1355) 2021-12-06 16:13:58 +01:00
Ken cb482b4cdc Update README.md 2021-12-06 14:18:51 +01:00
github-actions[bot] f6c4f853af Lerna versionbump [ci skip]
- @navikt/ds-css@0.11.5
 - @navikt/ds-react@0.13.3
 - @navikt/ds-react-internal@0.8.3
2021-12-06 11:09:52 +00:00
KenandAndreas Nordahl 9a2cd06452 [FEATURE] 3.0 Beta sync (#1341)
* checkbox border + spacing

* oppdatert spacing + description

* oppdatert checkbox til 3.0 beta

* lint fix

* disabled for checkbox

* fjernet ubrukte tokens

* generell opacity 0.3

* reduce checkbox label spacing

* adjust checkbox desc placement

* bruker nå Detail for small description

* reduce error message bullet spacing

* adjust small checkbox alignment

* adjust error message and fieldset spacing

* remove duplicate disabled opacity

* reduce fieldset desc margin

* small checkbox size

* [FIX] Beta 3.0 Disabled for restrende form-elementer (#1346)

* fieldset

* oppdatert textfield

* select disabled

* fikset additive opacity fieldset

* remove duplicate disabled style

Co-authored-by: Andreas Nordahl <andnorda@gmail.com>

* Beta 3.0 Radio (#1342)

* oppdatert small

* oppdatert radio error

* oppdatert disabled for radio

* fjernet ubrukte tokens

* radio by box shadow

* some radio positioning and fieldset desc size

* remove duplicate disabled opacity

* oopsie

* oopsie

Co-authored-by: Andreas Nordahl <andnorda@gmail.com>

* align small checkbox desc

* align hidden input of small checkbox and radio

* combine radio and checkbox styles

* lint fixes

* error on checkbox and radio is boolean

* remove errorPopagation from checkbox group and radio group

* remove error from radio as it only makes sense on group

* cleanup checkbox stories

* cleanup radio stories

* update radio and checkbox how-to guides

* place and size checkmark absolutely to fix strange rounding behaviour

* padding around label

* oopsie

* Beta 3.0 Textfield (#1343)

Co-authored-by: Andreas Nordahl <andnorda@gmail.com>

* radio-label/desc as "div"

Co-authored-by: Andreas Nordahl <andnorda@gmail.com>
2021-12-06 11:52:59 +01:00
Ken 40ae4d9a20 Update README.md 2021-12-06 10:46:24 +01:00
Ken 3e835fc76c kan nå bruke accordion i god-praksis 2021-12-03 13:53:39 +01:00
github-actions[bot] 2ad9183b09 Lerna versionbump [ci skip]
- @navikt/ds-react@0.13.2
 - @navikt/ds-react-internal@0.8.2
2021-12-02 13:23:57 +00:00
Andreas Nordahl 627b4f06cb [fix] field description as div (#1353) 2021-12-02 14:05:07 +01:00
Ken 3977927ac8 Update README.md 2021-11-26 10:57:26 +01:00
Ken 6f81c2cf4e Update update-tokens.yml 2021-11-18 11:57:06 +01:00
github-actions[bot] 46f97b006f Lerna versionbump [ci skip]
- @navikt/ds-css@0.11.4
 - @navikt/ds-tokens@0.6.3
2021-11-17 14:28:50 +00:00
Ken 9338995a3c [FIX] Nested token-parsing (#1347) 2021-11-17 15:09:59 +01:00
github-actions[bot] e3cf943ab3 Lerna versionbump [ci skip]
- @navikt/ds-css@0.11.3
2021-11-15 13:33:02 +00:00
Andreas Nordahl 59a3c71821 [FIX] Reduce body line-height to make struts smaller 2021-11-15 14:12:54 +01:00
Andreas NordahlandKen edab708a93 add security playbook card to front page. adjust styling (#1330)
Co-authored-by: Ken <ken.aleksander@gmail.com>
2021-11-12 15:50:05 +01:00
github-actions[bot] c291a6106f Lerna versionbump [ci skip]
- @navikt/ds-css@0.11.2
 - @navikt/ds-tokens@0.6.2
2021-11-12 13:43:24 +00:00
github-actions[bot]andKenAJoh 8f0601e93f [FIX] Tokens sync Figma (#1331)
Co-authored-by: KenAJoh <KenAJoh@users.noreply.github.com>
2021-11-12 14:27:21 +01:00
github-actions[bot] 03a9d1a554 Lerna versionbump [ci skip]
- @navikt/ds-css@0.11.1
 - @navikt/ds-icons@0.6.3
 - @navikt/ds-react@0.13.1
 - @navikt/ds-tokens@0.6.1
 - @navikt/ds-react-internal@0.8.1
2021-11-12 11:01:46 +00:00
github-actions[bot]andKenAJoh c58688a966 [FIX] Tokens sync Figma (#1328)
Co-authored-by: KenAJoh <KenAJoh@users.noreply.github.com>
2021-11-12 11:45:51 +01:00
Ken f242e5028c Fikset parsing til Style Dictionary format (#1329) 2021-11-12 11:08:51 +01:00
KenandAndreas Nordahl 92e13a173f [FIX ] ikon id prefikset (#1324)
Co-authored-by: Andreas Nordahl <andnorda@gmail.com>
2021-11-12 10:05:52 +01:00
github-actions[bot] a06b27a218 Lerna versionbump [ci skip]
- @navikt/ds-css@0.11.0
 - @navikt/ds-react@0.13.0
 - @navikt/ds-tokens@0.6.0
 - @navikt/ds-react-internal@0.8.0
2021-11-11 17:30:19 +00:00
KenandAndreas Nordahl 942f611c38 [FEATURE] Henter tokens fra Figma (#1270)
Co-authored-by: Andreas Nordahl <andnorda@gmail.com>
2021-11-11 18:08:31 +01:00
github-actions[bot] 9754e17057 Lerna versionbump [ci skip]
- @navikt/ds-react-internal@0.7.4
2021-11-11 16:13:22 +00:00
Ken 656d53c9e4 [FIX] Fjernet aria-haspopup fra toggle-button (#1325) 2021-11-11 16:57:21 +01:00
Ken d0bf3d81a8 Update update-icons.yml 2021-11-06 13:47:34 +01:00
github-actions[bot] 39c4c751d8 Lerna versionbump [ci skip]
- @navikt/ds-react@0.12.3
 - @navikt/ds-react-internal@0.7.3
2021-11-05 11:00:44 +00:00
Andreas Nordahl dacaf44ea8 [fix] controlled radio group no longer logs errors (#1322) 2021-11-05 11:42:35 +01:00
github-actions[bot] 8c4c73cc2e Lerna versionbump [ci skip]
- @navikt/ds-icons@0.6.2
 - @navikt/ds-react@0.12.2
 - @navikt/ds-react-internal@0.7.2
2021-11-03 10:23:10 +00:00
KenandKenAJoh 324eb29f02 [FIX] Ikonsynk Figma (#1319)
Co-authored-by: KenAJoh <KenAJoh@users.noreply.github.com>
2021-11-03 11:05:24 +01:00
github-actions[bot] ce0bde9ea3 Lerna versionbump [ci skip]
- @navikt/ds-icons@0.6.1
 - @navikt/ds-react@0.12.1
 - @navikt/ds-react-internal@0.7.1
2021-11-02 12:30:06 +00:00
KenandGitHub 4c26512709 [FIX] Ikonsynk fra Figma (Automatisk PR) (#1317)
Co-authored-by: GitHub <noreply@github.com>
2021-11-02 13:13:29 +01:00
Ken 17f5f9e379 github bot som Pr author 2021-11-02 11:39:39 +01:00
Ken 95eeb92a4e Update update-icons.yml 2021-11-02 11:10:10 +01:00
github-actions[bot] 0673ab670f Lerna versionbump [ci skip]
- @navikt/ds-icons@0.6.0
 - @navikt/ds-react@0.12.0
 - @navikt/ds-react-internal@0.7.0
2021-11-01 11:54:29 +00:00
KenandKenAJoh 68d5e81076 [FEATURE] Automatisk PR for ikoner (#1314)
Co-authored-by: KenAJoh <KenAJoh@users.noreply.github.com>
2021-11-01 12:39:54 +01:00
Ken b775a84493 oppdatert automatisk PR tekst 2021-11-01 10:53:02 +01:00
Ken 27f491d452 bedre feilmeldinger 2021-11-01 10:21:36 +01:00
Ken 129d159570 fikset update build script 2021-11-01 10:10:38 +01:00
github-actions[bot] b5d1eb0105 Lerna versionbump [ci skip]
- @navikt/ds-icons@0.5.10
 - @navikt/ds-react@0.11.10
 - @navikt/ds-react-internal@0.6.11
2021-10-29 13:19:58 +00:00
Ken 0f03d9c538 [FIX] Fjernet tabindex fra ikoner (#1313) 2021-10-29 15:01:07 +02:00
Ken 29f1567601 Lerna versionbump [ci skip]
- @navikt/ds-icons@0.5.9
 - @navikt/ds-react@0.11.9
 - @navikt/ds-react-internal@0.6.10
2021-10-29 14:30:16 +02:00
Ken 2bd4fd52ff fjernet test-sjekk i icon-update workflow 2021-10-28 16:46:31 +02:00
Ken 9af1c3b5d2 [FIX] Automatisk PR for ikon-oppdateringer (#1312) 2021-10-28 16:32:24 +02:00
github-actions[bot] b1eebe5228 Lerna versionbump [ci skip]
- @navikt/ds-icons@0.5.8
 - @navikt/ds-react@0.11.8
 - @navikt/ds-react-internal@0.6.9
2021-10-26 13:41:08 +00:00
Andreas Nordahl 804a24f631 [fix] Icons uu (#1310)
* add role=img to icon svgs

* use svgr config file

* add svgr template to default titleId to uuid-v4

* clean icon cjs and esm

* set tabIndex to -1 for ie11 compat

* update icons props to reflect icon updates
2021-10-26 15:20:40 +02:00
Ken 6918e1695b Hotjar for verktøykassen (#1311) 2021-10-26 14:47:33 +02:00
github-actions[bot] cffc4b6539 Lerna versionbump [ci skip]
- @navikt/ds-react-internal@0.6.8
2021-10-26 12:14:28 +00:00
Ken b575e39000 [FIX] Kjøre onClick og onClose i header/dropdow (#1309) 2021-10-26 13:54:04 +02:00
Ken ced2b9b46b @storybook/addon-a11y for storybook (#1308) 2021-10-26 13:53:58 +02:00
github-actions[bot] f19ea3d0fe Lerna versionbump [ci skip]
- @navikt/ds-react@0.11.7
 - @navikt/ds-react-internal@0.6.7
2021-10-26 09:08:48 +00:00
Andreas Nordahl 260ee43f09 [fix] input className only on field container (#1307) 2021-10-26 10:54:34 +02:00
github-actions[bot] a1bdcd4df5 Lerna versionbump [ci skip]
- @navikt/ds-icons@0.5.7
 - @navikt/ds-react@0.11.6
 - @navikt/ds-react-internal@0.6.6
2021-10-25 15:54:41 +00:00
Ken 5669efc0dd [FIX] Gjør ikoner default focusable={false} (#1304) 2021-10-25 17:36:52 +02:00
Karl O 00a02fa8ae [FIX] bruk camelCase isteden for kebab-case i react svg (#1306) 2021-10-25 17:36:41 +02:00
github-actions[bot] 93f1d199cd Lerna versionbump [ci skip]
- @navikt/ds-react@0.11.5
 - @navikt/ds-react-internal@0.6.5
2021-10-25 08:07:17 +00:00
Ken a69db74d79 [FIX] Fjernet alt-tag fra alert-ikon, trenger bare aria-label (#1302) 2021-10-25 09:49:56 +02:00
Ken 717b70a011 Litt dokumentasjon om forwardedAs (#1303) 2021-10-25 09:49:49 +02:00
github-actions[bot] ed937f68c5 Lerna versionbump [ci skip]
- @navikt/ds-react@0.11.4
 - @navikt/ds-react-internal@0.6.4
2021-10-21 08:11:19 +00:00
Ken 47c4f9aa26 [FIX] Bugfix loader-id (#1301) 2021-10-21 09:52:47 +02:00
github-actions[bot] b166e5e5df Lerna versionbump [ci skip]
- @navikt/ds-react@0.11.3
 - @navikt/ds-react-internal@0.6.3
2021-10-20 14:49:50 +00:00
KenandAndreas Nordahl e150b4f264 [FIX] State-handling og warnings i Checkbox (#1295)
Co-authored-by: Andreas Nordahl <andnorda@gmail.com>
2021-10-20 16:34:53 +02:00
github-actions[bot] be9660948c Lerna versionbump [ci skip]
- @navikt/ds-react@0.11.2
 - @navikt/ds-react-internal@0.6.2
2021-10-20 14:06:48 +00:00
Andreas Nordahl 26023c888b [fix] remove aria-controls (#1300) 2021-10-20 15:50:19 +02:00
github-actions[bot] 79b85169d1 Lerna versionbump [ci skip]
- @navikt/ds-react@0.11.1
 - @navikt/ds-react-internal@0.6.1
2021-10-20 12:40:42 +00:00
Andreas Nordahl 4e5d410f9f [fix] remove aria-live from popover (#1299) 2021-10-20 14:22:20 +02:00
github-actions[bot] 83ba659219 Lerna versionbump [ci skip]
- @navikt/ds-css@0.10.0
 - @navikt/ds-react@0.11.0
 - @navikt/ds-css-internal@0.6.0
 - @navikt/ds-react-internal@0.6.0
2021-10-19 13:17:42 +00:00
Ken af12f5aa47 [FEATURE] Flyttet CopyToClipboard to internal-pakke 1/3 (#1296) 2021-10-19 15:01:32 +02:00
github-actions[bot] 7548ef086f Lerna versionbump [ci skip]
- @navikt/ds-react@0.10.7
 - @navikt/ds-react-internal@0.5.5
2021-10-19 12:41:18 +00:00
Ken 077ccb81cb [FIX] Fjernet ubrukt dot.notation i Alert (#1294) 2021-10-19 14:24:22 +02:00
github-actions[bot] fc6bdd70c7 Lerna versionbump [ci skip]
- @navikt/ds-icons@0.5.6
 - @navikt/ds-react@0.10.6
 - @navikt/ds-react-internal@0.5.4
2021-10-19 11:53:52 +00:00
Andreas Nordahl 998f0c7752 [fix] simplify tsconfig of @navikt/ds-react-internal (#1285)
* simplify tsconfig of @navikt/ds-react-internal

* new tsconfig for core react

* new tsconfig in icons

* rename tsconfig-esm to tsconfig.esm
2021-10-19 13:39:30 +02:00
Andreas NordahlandKen 900525fecf Typo migration guide (#1293)
* Typo migration guide draft

* Update @navikt/core/react/src/typography/stories/typography.stories.mdx

Co-authored-by: Ken <26967723+KenAJoh@users.noreply.github.com>

Co-authored-by: Ken <26967723+KenAJoh@users.noreply.github.com>
2021-10-18 17:37:22 +02:00
github-actions[bot] b20fa69869 Lerna versionbump [ci skip]
- @navikt/ds-css@0.9.3
 - @navikt/ds-react@0.10.5
 - @navikt/ds-tokens@0.5.3
 - @navikt/ds-react-internal@0.5.3
2021-10-18 13:21:09 +00:00
Andreas Nordahl 1367a628d2 [fix] fix size naming of some classes and tokens (#1291) 2021-10-18 15:04:26 +02:00
Ken bf99605db2 Oppdaterte storybook-docs, Roadmap (#1288)
* oppdatert docs

* oppdatert comment

* oppdatert tekst

* fikset table
2021-10-18 14:50:32 +02:00
github-actions[bot] f954bca955 Lerna versionbump [ci skip]
- @navikt/ds-icons@0.5.5
 - @navikt/ds-react@0.10.4
 - @navikt/ds-react-internal@0.5.2
2021-10-18 08:53:03 +00:00
Ken 887a76259e [fix] oppdaterte ikoner (#1290) 2021-10-18 10:38:07 +02:00
Ida 90114923c4 [fix] fikser eksempel (#1289) 2021-10-18 09:34:32 +02:00
github-actions[bot] a170ca8998 Lerna versionbump [ci skip]
- @navikt/ds-css@0.9.2
 - @navikt/ds-react@0.10.3
 - @navikt/ds-react-internal@0.5.1
2021-10-15 13:24:12 +00:00
347427c6e6 [fix] Table component (#1286)
* simplify tsconfig of @navikt/ds-react-internal

* placeholder-componenter for tabell

* split into headercell and normal cell

* varianter av tabell

* støtter både zebra og vertikale striper

* midlertidig fix for exluding av stories

* litt endringer i api og props etter diskusjon med andreas

* fjerner styling-props

* rydder

* rydder

* flytter til core

* rydder

Co-authored-by: Andreas Nordahl <andnorda@gmail.com>
Co-authored-by: Ken <ken.aleksander@gmail.com>
2021-10-15 15:11:29 +02:00
Ken 35aab3b672 [FIX] Workflow fungerer nå, la tilbake build-steps 2021-10-15 12:28:26 +02:00
Ken 5f4c0a7a2d [FIX] publish med no-verify-access 2021-10-15 12:20:17 +02:00
Ken fd120b65e0 [FIX] tester alternativt oppsett av node for npm publish2 2021-10-15 12:10:44 +02:00
Ken 3ae1be923e [FIX] tester alternativt oppsett av node for npm publish 2021-10-15 12:06:22 +02:00
Ken dab2c3f2c2 [FIX] temp fjernet test for å gjøre build raskere 2021-10-15 11:37:56 +02:00
Ken c0f1b8401e oppdatert workflow 2021-10-15 11:36:06 +02:00
Ken 8ba8936fdd [FIX] Oppdatert Readme 2021-10-14 15:09:09 +02:00
Andreas Nordahl 15c5845465 delete unused util scripts (#1284) 2021-10-12 20:16:37 +02:00
github-actions[bot] f6bc0c612f Lerna versionbump [ci skip]
- @navikt/ds-css-internal@0.5.0
 - @navikt/ds-react-internal@0.5.0
2021-10-12 12:51:44 +00:00
Andreas NordahlandIda Onshus b796e306d5 [feature] Dropdown menu with description list for heading hierarchy (#1283)
* header dl wip

* header dl wip

* legger til descriptionlist-komponenter i dropdown menu for internflateheader

* some cleanup

* use new dropdown api in header stories

* rename and restructure grouped lsit

* change dropdown menu api to contain toggle and context

* wip

* complete implementation of new dropdown api

* use dropdown directly in header

* unused imports

* remove uneccesary dropdownId

Co-authored-by: Ida Onshus <25682301+idaons@users.noreply.github.com>
2021-10-12 14:38:28 +02:00
IdaandAndreas Nordahl 0e9680dab9 oppdaterer readme for yarn install med mac m1 (#1282)
* oppdaterer readme for yarn install med macm1

* Update CONTRIBUTING.md

Co-authored-by: Andreas Nordahl <andnorda@gmail.com>

* Update CONTRIBUTING.md

Co-authored-by: Andreas Nordahl <andnorda@gmail.com>

* Update CONTRIBUTING.md

Co-authored-by: Andreas Nordahl <andnorda@gmail.com>

Co-authored-by: Andreas Nordahl <andnorda@gmail.com>
2021-10-11 11:13:03 +02:00
Ken 6d2858c6e1 whoami 2021-10-11 10:52:05 +02:00
Ken 9294410ed8 forsøk på npm fix 2021-10-11 10:51:03 +02:00
github-actions[bot] e3653580e6 Lerna versionbump [ci skip]
- @navikt/ds-css-internal@0.4.0
 - @navikt/ds-react-internal@0.4.0
2021-10-08 07:50:38 +00:00
Andreas Nordahl c9ab2e1516 [feature] remove unused header button (#1281) 2021-10-08 09:35:51 +02:00
Andreas Nordahl bb1876df43 remove list component from dropdown to simplify API (#1280) 2021-10-08 09:21:27 +02:00
github-actions[bot] d98bff30f6 Lerna versionbump [ci skip]
- @navikt/ds-css-internal@0.3.1
 - @navikt/ds-react-internal@0.3.1
2021-10-07 14:45:58 +00:00
Andreas Nordahl 7f53011d91 [fix] Header uu (#1279)
* render user name and desc as div

* dont use heading for menu title

* unused import
2021-10-07 16:29:29 +02:00
github-actions[bot] 4a451fe84a Lerna versionbump [ci skip]
- @navikt/ds-css-internal@0.3.0
 - @navikt/ds-react-internal@0.3.0
2021-10-07 13:01:29 +00:00
Andreas Nordahl 01adced0e7 [feature] Internal header dropdown menus (#1276)
* dot notation

* refactor HeaderTitle

* WIP

* separate story

* header dropdown

* add generic dropdown and divider

* some cleanup

* initial draft complete

* unused import

* revert overridable component

* width hover and focus

* wrap items in list and add roles

* delete outdated mdx stories

* new Header.dropdown api

* some cleanup

* height

* some cleanup

* lots of styling fixes

* user button component

* rename classes

* spacing fix

* title

* dropdown max-height

* color cleanup

* fix typo
2021-10-07 14:45:43 +02:00
Ken e2bae872cf [FIX] registry fix 2 2021-10-05 19:25:21 +02:00
Ken aff8f00ade registry fix 2 2021-10-05 19:24:47 +02:00
Ken ad28279bd3 [FIX] Endret npm registry til https fra http (#1278) 2021-10-05 17:30:48 +02:00
github-actions[bot] 9ec5d6a48e Lerna versionbump [ci skip]
- @navikt/ds-css@0.9.1
 - @navikt/ds-react@0.10.2
 - @navikt/ds-react-internal@0.2.1
2021-10-05 11:16:02 +00:00
Ken 755cb409be [FIX] La til ClearButton i import/export, fikset styling (#1274) 2021-10-05 13:00:38 +02:00
github-actions[bot] 7a9820ffa6 Lerna versionbump [ci skip]
- nav-frontend-skjema@4.0.5
2021-10-04 14:06:10 +00:00
Ken 812e93a354 [FIX] Oppdatert subtext for radiopanel og checkboxpanel (#1275) 2021-10-04 15:49:47 +02:00
github-actions[bot] 00e1e254f2 Lerna versionbump [ci skip]
- @navikt/ds-css-internal@0.2.0
 - @navikt/ds-react-internal@0.2.0
2021-10-01 13:13:45 +00:00
Andreas Nordahl ee389a9497 [feature] Refactor internal header (#1272)
* dot notation

* refactor HeaderTitle

* use heading component in header title

* use typo components in header user

* update header.stories.mdx
2021-10-01 15:00:10 +02:00
github-actions[bot] 4751e8048d Lerna versionbump [ci skip]
- @navikt/ds-react@0.10.1
2021-09-29 15:57:16 +00:00
Andreas Nordahl 78c29f06d5 [fix] make popover anchor element more generic (#1273) 2021-09-29 17:41:26 +02:00
Terje Karlsen 58a25bbc00 Korrigerer garpegenitiv og div tekstforbedring (#1271) 2021-09-29 13:00:19 +02:00
Ken 4048a0aba6 Update README.md 2021-09-29 10:57:11 +02:00
github-actions[bot] 006bd6f9ac Lerna versionbump [ci skip]
- @navikt/ds-css@0.9.0
 - @navikt/ds-react@0.10.0
 - @navikt/ds-css-internal@0.1.0
 - @navikt/ds-react-internal@0.1.0
2021-09-28 10:43:10 +00:00
Andreas NordahlandKen 58c3351d2f [feature] Internal header in separate package (#1268)
* add internal css package

* ds-react-internal package and move internal header

* remove placeholder style!

* move mdx story

* oppdatert typo-styling

* oppdatert lerna config

* lurte inn oppdatering av scripts

Co-authored-by: Ken <ken.aleksander@gmail.com>
2021-09-28 12:24:02 +02:00
Ken 27e11acc33 oppdatert tekst for god-praksis 2021-09-28 11:53:50 +02:00
Ken e52a23fee9 Update build-publish.yml 2021-09-28 11:43:42 +02:00
Ken 017deefd77 Delete .specifyrc.json 2021-09-28 10:16:31 +02:00
Andreas Nordahl 99a4212f54 [FIX] force postinstall in workflow (#1267) 2021-09-24 16:01:35 +02:00
Per Jørgen Walstrøm 12da298e87 [FIX] Mobilnummer bør følge Språkrådets formatanbefaling (#1266)
Ref https://navno.sharepoint.com/sites/intranett-kommunikasjon/SitePages/Datoer,-symboler,-tall-og-valuta.aspx
2021-09-24 15:31:30 +02:00
384 changed files with 9198 additions and 6855 deletions

No files matched your search

+11 -20
View File
@@ -30,37 +30,36 @@ jobs:
- name: install
if: steps.node-cache.outputs.cache-hit != 'true'
run: yarn install
- name: test
run: yarn test
- name: postinstall
if: steps.node-cache.outputs.cache-hit == 'true'
run: yarn postinstall
- name: Boot
run: yarn boot
- name: Eslint and Stylelint
run: yarn lint
- name: Test
run: yarn test
- name: add access token to .env
run: echo "ACCESS_TOKEN=${{ secrets.VERKTOYKASSE_INNHOLD_TOKEN }}" >> website/.env
- name: add branch token to .env
run: echo "BRANCH=HEAD" >> website/.env
- name: Test gatsby-build (design.nav.no)
run: yarn build:gatsby
- name: Test chromatic
uses: chromaui/action@v1
with:
token: ${{ secrets.GIT_REPO }}
projectToken: ${{ secrets.CHROMATIC }}
exitZeroOnChanges: true
publish-npm:
needs: test-build
runs-on: ubuntu-latest
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_AUTOMATION }}
if: github.event_name == 'push' && contains(github.event.head_commit.message, '[fix]') || contains(github.event.head_commit.message, '[feature]') || contains(github.event.head_commit.message, '[breaking]')
steps:
- uses: actions/checkout@v2
with:
fetch-depth: "0"
token: ${{secrets.GIT_REPO}}
- uses: actions/setup-node@v1
- uses: actions/setup-node@v2
with:
registry-url: http://registry.npmjs.org
registry-url: https://registry.npmjs.org
node-version: 14
- name: Node-modules cache
uses: actions/cache@v2
@@ -90,17 +89,9 @@ jobs:
- name: Update changed packages with MAJOR
if: "contains(github.event.head_commit.message, '[breaking]')"
run: yarn lerna version major --include-merged-tags --yes
- name: Create a .npmrc file for NPM
run: |
echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> .npmrc
npm whoami
env:
NPM_TOKEN: ${{secrets.NPM_AUTOMATION}}
- name: Publish to NPM registry
run: |
yarn lerna publish from-package --yes
rm .npmrc
run: yarn lerna publish --no-verify-access from-package --yes
- name: Create a .npmrc file for the github package repository
uses: FerLuisxd/create-npmrc@3
with:
+126
View File
@@ -0,0 +1,126 @@
name: Chromatic
on:
push:
branches: [master]
pull_request:
branches: [master]
jobs:
chromatic-pr:
if: "!contains(github.event.head_commit.message, '[ci skip]') && github.event_name != 'push'"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: actions/setup-node@v1
with:
node-version: 14
- name: Node-modules cache
uses: actions/cache@v2
id: node-cache
with:
path: "**/node_modules"
key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }}
- name: install
if: steps.node-cache.outputs.cache-hit != 'true'
run: yarn install
- name: postinstall
if: steps.node-cache.outputs.cache-hit == 'true'
run: yarn postinstall
- name: Boot
run: yarn boot
- name: run chromatic
uses: chromaui/action@v1
id: chromatic_tests
continue-on-error: true
with:
token: ${{ secrets.GITHUB_TOKEN }}
projectToken: x3xqdfgkujg
exitZeroOnChanges: false
- name: replace storybook url
uses: frabert/replace-string-action@v2.0
id: storybook_url
with:
pattern: "(iframe.html)"
string: ${{ steps.chromatic_tests.outputs.storybookUrl }}
replace-with: ""
- name: Get commit sha
id: vars
shell: bash
run: |
echo "::set-output name=sha_short::$(git rev-parse --short HEAD)"
- name: Find Comment
uses: peter-evans/find-comment@v1
id: fc
with:
issue-number: ${{ github.event.pull_request.number }}
comment-author: "github-actions[bot]"
body-includes: Chromatic build-output
- name: Create or update comment
if: steps.chromatic_tests.outcome == 'success'
uses: peter-evans/create-or-update-comment@v1
with:
comment-id: ${{ steps.fc.outputs.comment-id }}
issue-number: ${{ github.event.pull_request.number }}
body: |
Chromatic build-output:
- :clipboard: [Review](${{steps.chromatic_tests.outputs.url}})
- :tada: [Storybook preview](${{steps.storybook_url.outputs.replaced}})
- :white_check_mark: SUCCESS :white_check_mark:
commit: `${{ steps.vars.outputs.sha_short }}`
edit-mode: replace
- name: Create or update failed comment
if: steps.chromatic_tests.outcome != 'success'
uses: peter-evans/create-or-update-comment@v1
with:
comment-id: ${{ steps.fc.outputs.comment-id }}
issue-number: ${{ github.event.pull_request.number }}
body: |
**Chromatic build-output**:
- :clipboard: [Review](${{steps.chromatic_tests.outputs.url}})
- :tada: [Storybook preview](${{steps.storybook_url.outputs.replaced}})
- :no_entry_sign: FAILED :no_entry_sign:, review endringer.
commit: `${{ steps.vars.outputs.sha_short }}`
edit-mode: replace
chromatic-push:
if: "!contains(github.event.head_commit.message, '[ci skip]') && github.event_name == 'push'"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: actions/setup-node@v1
with:
node-version: 14
- name: Node-modules cache
uses: actions/cache@v2
id: node-cache
with:
path: "**/node_modules"
key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }}
- name: install
if: steps.node-cache.outputs.cache-hit != 'true'
run: yarn install
- name: postinstall
if: steps.node-cache.outputs.cache-hit == 'true'
run: yarn postinstall
- name: Boot
run: yarn boot
- name: run chromatic
uses: chromaui/action@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
projectToken: x3xqdfgkujg
autoAcceptChanges: true
+42
View File
@@ -0,0 +1,42 @@
name: Update Icons
on:
# schedule:
# - cron: 0 0 * * *
workflow_dispatch:
jobs:
update:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: 14
- name: Node-modules cache
uses: actions/cache@v2
id: node-cache
with:
path: "**/node_modules"
key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }}
- name: install
if: steps.node-cache.outputs.cache-hit != 'true'
run: yarn install
- name: postinstall
if: steps.node-cache.outputs.cache-hit == 'true'
run: yarn postinstall
- name: Update Icons
run: yarn update:icons
env:
FIGMA_TOKEN: ${{ secrets.FIGMA_IKONER_API }}
- name: Create Pull Request
uses: peter-evans/create-pull-request@v3
with:
token: ${{ secrets.GIT_REPO }}
commit-message: "Ikoner synket fra figma"
branch: figma-icons-sync
committer: GitHub <noreply@github.com>
author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com>
signoff: false
delete-branch: true
title: "[FIX] Ikonsynk Figma"
+39
View File
@@ -0,0 +1,39 @@
name: Update tokens
on:
workflow_dispatch:
jobs:
update:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: 14
- name: Node-modules cache
uses: actions/cache@v2
id: node-cache
with:
path: "**/node_modules"
key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }}
- name: install
if: steps.node-cache.outputs.cache-hit != 'true'
run: yarn install
- name: postinstall
if: steps.node-cache.outputs.cache-hit == 'true'
run: yarn postinstall
- name: Update tokens
run: yarn update:tokens
env:
FIGMA_TOKEN: ${{ secrets.FIGMA_IKONER_API }}
- name: Create Pull Request
uses: peter-evans/create-pull-request@v3
with:
token: ${{ secrets.GITHUB_TOKEN }}
branch: figma-tokens-sync
delete-branch: true
title: "[FEATURE] Tokens sync Figma"
commit-message: "Tokens synket fra figma"
committer: GitHub <noreply@github.com>
signoff: false
+2 -1
View File
@@ -115,4 +115,5 @@ utilities/**/css
react-docgen.json
react-docgen-docs.json
cjs
esm
esm
.vercel
-46
View File
@@ -1,46 +0,0 @@
{
"repository": "@nav/designsystem",
"head": "specify-sync",
"base": "specify-token-parsing",
"rules": [
{
"name": "Color sync",
"path": "@navikt/core/tokens/src/colors.js",
"filter": {
"types": ["color"]
},
"parsers": [
{
"name": "to-theme-ui",
"options": {
"formatConfig": {
"module": "commonjs"
},
"formatTokens": {
"colorFormat": {
"format": "rgb"
}
}
}
}
]
},
{
"name": "Spacing sync",
"path": "@navikt/core/tokens/src/spacing.js",
"filter": {
"types": ["measurement"]
},
"parsers": [
{
"name": "to-theme-ui",
"options": {
"formatConfig": {
"module": "commonjs"
}
}
}
]
}
]
}
+1
View File
@@ -11,6 +11,7 @@ module.exports = {
],
addons: [
"@storybook/addon-docs",
"@storybook/addon-a11y",
{
name: "@storybook/addon-storysource",
options: {
+1
View File
@@ -1,5 +1,6 @@
import "nav-frontend-core";
import "@navikt/ds-css/index.css";
import "@navikt/ds-css-internal/index.css";
export const parameters = {
actions: { argTypesRegex: "^on[A-Z].*" },
@@ -20,3 +20,16 @@ import "@navikt/ds-css"
Dette vil også legge css-variabler på :root. For å få dette til å fungere med IE11, kan denne pakken tas i bruk: https://jhildenbiddle.github.io/css-vars-ponyfill/#/
Note: Disse komponentene kan ikke garanteres at fungerer som forventet i IE11 da vi har valgt og ikke unngå styling-valg basert på IE11 støtte eller ikke.
## Bruke styled-components eller emotion
Flere av våre komponenter er implementert med OverridableComponent. Dette vil si at komponenten tar i mot en prop, `as` som lar deg endre hvilken tag som blir satt.
Bruk for dette er eks hvis du ønsker `Heading` stilen, men ikke en heading-tag. Da kan man lett skrive `<Heading as="div">` og man vil få en `div`-tag istedenfor.
Flere css-in-js bibliotek har også denne funksjonaliteten bygd inne, noe som kan komplisere ting når alle bruker samme navn `as` for dette.
### Løsninger
[Styled-components](https://styled-components.com/docs/api#forwardedas-prop)
> TLDR: Bruk `forwardedAs` istendenfor `as` på komponentene, SD fikser resten.
+35 -1
View File
@@ -2,7 +2,41 @@ import { Meta } from "@storybook/addon-docs";
<Meta title="ds-react/Migration" />
# Migrering til ds-react, ds-css v0.8.0
# Migreringsguider
## Migrering til ds-css v0.12, ds-tokens v0.7
### Tokens er refaktort og oppdatert
- Vi har nå fått helt nye tokens synket fra 3.0 biblioteket i Figma.
- Dette vi si at de som har brukt tokens for styling i sitt prosjekt må gå gjennom å fikse alle endringene.
- Hvis du bare har brukt react-komponentene rett ut av boken så har denne endringene ikke noe å si for deg.
## Migrering til ds-react v0.11, ds-css v0.10
### ErrorSummary
- ErrorSummaryItem -> ErrorSummary.Item
Må da slette import "ErrorSummaryItem" da denne ikke er eksponert alene lengre
### SearchField
- SearchFieldButton -> SearchField.Button
- SearchFieldClearButton -> SearchField.Clear
- SearchFieldInput -> SearchField.Input
SearchFieldButton, SearchFieldClearButton og SearchFieldInput må da slettes fra imports da de ikke er eksponert lengre.
### CopyToClipBoard
Komponenten er flyttet til pakkene "@navikt/ds-react-internal" og "@navikt/ds-css-internal". API er ikke endret
så fikses med
```bash
yarn install @navikt/ds-react-internal @navikt/ds-css-internal
```
## Migrering til ds-react, ds-css v0.8.0
Denne guiden vil være til hjelp for de som allerede har begynt å ta i bruk de nye pakkene våre tidligere enn v0.8.0.
For de som ikke har begynt å ta i bruk pakkene kan man se bort fra denne.
+269
View File
@@ -0,0 +1,269 @@
import { Table as DsTable } from "@navikt/ds-react";
import {
SuccessFilled as SuccessIcon,
ErrorFilled as ErrorIcon,
} from "@navikt/ds-icons";
import styled from "styled-components";
const Success = styled(SuccessIcon)`
color: var(--navds-semantic-color-feedback-success-icon);
`;
const Error = styled(ErrorIcon)`
color: var(--navds-semantic-color-feedback-danger-icon);
`;
const Table = styled(DsTable)`
.navds-table__cell > svg,
.navds-table__cell > span {
vertical-align: middle;
margin-left: 50%;
transform: translateX(-50%);
}
`;
type CompT = {
name: string;
status: Partial<[boolean, boolean, boolean]>;
desc?: React.ReactNode;
};
const Components: CompT[] = [
{
name: "Alertstriper",
status: [true, true, true],
desc: "Navn: Alert",
},
{ name: "Chevron", status: [false], desc: "" },
{
name: "Core",
status: [true, true, false],
desc: <code>@navikt/ds-css</code>,
},
{
name: "Ekspanderbartpanel",
status: [true, true, true],
desc: "Navn: Accordion, styling ikke oppdatert til nyeste versjon",
},
{ name: "Etiketter", status: [true, true, false], desc: "Navn: Tag" },
{
name: "Fullbreddeknapp-style",
status: [false],
desc: "",
},
{ name: "Grid", status: [true, true, false], desc: "Navn: Grid" },
{ name: "Hjelpetekst", status: [true, true, true], desc: "Navn: HelpText" },
{
name: "Ikoner-assets",
status: [true, true, true],
desc: <code>@navikt/ds-icons</code>,
},
{
name: "js-utils",
status: [true, true, false],
desc:
"Diverse util-funksjoner blir eksponert gjennom ds-react, men tar for det meste i bruk npm pakker",
},
{ name: "Knapper", status: [true, true, true], desc: "Navn: Button" },
{ name: "Lenkepanel", status: [true, true, true], desc: "Navn: LinkPanel" },
{ name: "Lenker", status: [true, true, true], desc: "Navn: Link" },
{ name: "Lesmerpanel", status: [false], desc: "" },
{ name: "Lukknapp", status: [false], desc: `Bruk Button med "Close"-ikon` },
{ name: "Modal", status: [true, true, true], desc: "Navn: Modal" },
{ name: "Paneler", status: [true, true, true], desc: "Navn: Panel" },
{
name: "Bekrefcheckbokspanel",
status: [true, true, true],
desc: "Navn: ConfirmationPanel",
},
{
name: "Checkbokspanel-gruppe",
status: [false],
desc: "Panel-versjon vil ikke tas videre i nytt system",
},
{
name: "Checkbokspanel",
status: [false],
desc: "Panel-versjon vil ikke tas videre i nytt system",
},
{
name: "Checkbox-gruppe",
status: [true, true, true],
desc: "Navn: CheckboxGroup",
},
{ name: "Checkbox", status: [true, true, true], desc: "Navn: Checkbox" },
{
name: "Feiloppsummering",
status: [true, true, false],
desc: "Navn: ErrorSummary, API vil bli endret for denne",
},
{
name: "Fnr-input",
status: [false],
desc:
"Skjema-elementer med validering vil ikke bli lagt til med det første, men vil diskuteres i fremtiden",
},
{ name: "Input", status: [true, true, true], desc: "Navn: TextField" },
{
name: "Label",
status: [false],
desc: "Skjema-elementer fikser dette selv",
},
{ name: "Radio-Gruppe", status: [true, true, true], desc: "RadioGroup" },
{ name: "Radio", status: [true, true, true], desc: "Navn: Radio" },
{
name: "Radiopanel-gruppe",
status: [false],
desc: "Panel-versjon vil ikke tas videre i nytt system",
},
{
name: "Radio-panel",
status: [false],
desc: "Panel-versjon vil ikke tas videre i nytt system",
},
{ name: "Select", status: [true, true, true], desc: "Navn: Select" },
{ name: "Skjema-gruppe", status: [true, true, true], desc: "Navn: Fieldset" },
{
name: "Skjemaelement-feilemelding",
status: [false],
desc: "",
},
{ name: "Textarea", status: [true, true, true], desc: "Navn: Textarea" },
{ name: "Togglegruppe", status: [true, false, false], desc: "" },
{ name: "ToggleKnapp", status: [true, false, false], desc: "" },
{
name: "Toggle",
status: [true, false, false],
desc: "Vil bli samme komponent som ToggleKnapp",
},
{ name: "Popover", status: [true, true, true], desc: "Navn: Popover" },
{ name: "Snakkeboble", status: [true, true, true], desc: "SpeechBubble" },
{ name: "Spinner", status: [true, true, true], desc: "Navn: Loader" },
{ name: "Stegindikator", status: [true, false, false], desc: "" },
{
name: "Tabell-style",
status: [true, true, false],
desc: "Navn: Table, Er nå publisert som React-component",
},
{ name: "Tabs", status: [true, false, false], desc: "" },
{ name: "Tekstomrade", status: [false], desc: "" },
{
name: "Typografi",
status: [true, true, true],
desc: "Navn: se typography-mappen i storybook",
},
{ name: "veileder", status: [false], desc: "" },
{
name: "Veilederpanel",
status: [true, true, true],
desc: "Navn: GuidePanel",
},
];
const NewComps: CompT[] = [
{
name: "AccordionMenu",
status: [true, true, true],
desc: "",
},
{
name: "SearcField",
status: [true, true, false],
desc: "Denne vil undergå større endringer",
},
{
name: "MicroCard",
status: [true, true, false],
desc: "Vil flyttes over i egen navno pakke for eksterne sider",
},
{
name: "PageHeader",
status: [true, true, false],
desc: "Vil flyttes over i egen navno pakke for eksterne sider",
},
{
name: "CopyToClipboard",
status: [true, true, false],
desc: "Vil flyttes over til @navikt/ds-react-internal pakke",
},
{
name: "Table",
status: [true, true, false],
desc:
"Implementer stylingen til nav-frontend-table-styles, API vil videreutvikles",
},
{
name: "Switch",
status: [true, false, false],
desc: "",
},
{
name: "Tooltip",
status: [true, false, false],
desc: "",
},
{
name: "Timeline",
status: [true, false, false],
desc: "",
},
];
const CompTable = ({ list }) => (
<Table>
<Table.Header>
<Table.Row>
<Table.HeaderCell>Komponent</Table.HeaderCell>
<Table.HeaderCell>Med i nytt system</Table.HeaderCell>
<Table.HeaderCell>Publisert i pakker</Table.HeaderCell>
<Table.HeaderCell>Fullført**</Table.HeaderCell>
<Table.HeaderCell>Info</Table.HeaderCell>
</Table.Row>
</Table.Header>
<Table.Body>
{list.map((comp) => {
return (
<Table.Row>
<Table.HeaderCell>{comp.name}</Table.HeaderCell>
<Table.DataCell>
{comp.status?.[0] === undefined ? (
<span>-</span>
) : comp.status?.[0] ? (
<Success />
) : (
<Error />
)}
</Table.DataCell>
<Table.DataCell>
{comp.status?.[1] === undefined ? (
<span>-</span>
) : comp.status?.[1] ? (
<Success />
) : (
<Error />
)}
</Table.DataCell>
<Table.DataCell>
{comp.status?.[2] === undefined ? (
<span>-</span>
) : comp.status?.[1] ? (
<Success />
) : (
<Error />
)}
</Table.DataCell>
<Table.DataCell>{comp.desc ? comp.desc : "-"}</Table.DataCell>
</Table.Row>
);
})}
</Table.Body>
</Table>
);
export const NewCompTable = () => {
return <CompTable list={NewComps} />;
};
export const OldCompTable = () => {
return <CompTable list={Components} />;
};
+24 -11
View File
@@ -1,16 +1,30 @@
import { Meta } from "@storybook/addon-docs";
import { NewCompTable, OldCompTable } from "./roadmap-table.tsx";
<Meta title="ds-react/Roadmap" />
# Plan videre
# Roadmap
Arbeidet med det nye pakke-oppsettet har nå foregått en stund og skulle egentlig vært
lengre på vei en det er nå. Men arbeidet har på ingen måte stoppet opp! Vi jobber kontinuerlig med
å finne bedre løsninger for å kunne bygge systemet opp fra bunnen av. Dette innegår da
ny dokumentasjons-side bygd med Sanity, nye byggeblokker helt fra token-nivå og bedre sizing for eksterne/interne sider. Dette vil da forhåpentligvis la oss
bygge mer robuste og fleksible løsninger for fremtiden.
## Komponenter
(Rekkefølgen representer ikke faktisk tidsline eller prioritet)
\*\* Fullført betyr i denne konteksten at vi føler API-et er ok og da kan forvente mindre breaking changes.
Komponenten kan fortsatt bli utsatt for endringer i selve designet.
### Nye komponenter / wip
<NewCompTable />
### Migrering av gamle komponenter
<OldCompTable />
## Plan videre
Vi jobber kontinuerlig med å finne bedre løsninger for å kunne bygge systemet opp fra bunnen av. Dette innegår da
ny dokumentasjon-side under Verktøykassen, nye byggeblokker helt fra token-nivå og bedre sizing for eksterne/interne sider.
Dette vil la oss bygge mer robuste og fleksible løsninger for fremtiden som skal være bedre tilpasset produktene våre.
(Rekkefølgen representer ikke faktisk tidslinje)
## Tokens
@@ -20,12 +34,11 @@ Dette vil gjøre styling og overriding av komponenter enklere da man kan bruke c
## Intern / Ekstern sizing
Komponenter tilpasses og standariseres bedre for skillet mellom interne/eksterne flater.
Løsning er ikke fast bestemt, men eksempel på dette er `size="small" -> 32px, size="medium"-> 48px`.
Dette vil da eksempelvis kunne være en standard som er gjennomgående for de fleste komponentene.
Eksempel på dette er `size="small" -> 32px, size="medium"-> 48px`.
## Ny dokumentasjon-side
Vi bygger en ny side for å dokumentere systemet, og mer rundt utvikling/design i nav med "Verktøykassen"
Vi bygger en ny side for å dokumentere systemet, og mer rundt utvikling/design i NAV med "Verktøykassen"
## Migrere komponenter/styling fra nav-frontend-\* -> `@navikt/ds-css / @navikt/ds-react`
@@ -46,6 +59,6 @@ noe vi kunne ta en titt på hvis vi ser at det trengs.
## Versjonering
To av de nye pakkene under `@navikt`, da `ds-css` og `ds-react` er nå versjonert under to store pakker med alle komponentene. I fremtiden vil vi se på å
De nye pakkene under `@navikt`, da `ds-css` og `ds-react` er nå versjonert under to store pakker med alle komponentene. I fremtiden vil vi se på å
ha både samversjonering (alle pakker under en eks ds-react versjon) og induvduell verjsonering da eks ds-react/button har en egen versjon
slik at man kan ha mer finkontroll over komponentbruk på siden sin.
+8 -6
View File
@@ -1,9 +1,11 @@
:root {
--navds-accordion-menu-color-text: var(--navds-color-text-link);
--navds-accordion-menu-color-text-focus: var(--navds-color-darkgray);
--navds-accordion-menu-color-background-hover: var(--navds-color-blue-10);
--navds-accordion-menu-color-text-active: var(--navds-color-text);
--navds-accordion-menu-outline-focus: var(--navds-text-focus);
--navds-accordion-menu-color-text: var(--navds-semantic-color-link);
--navds-accordion-menu-color-text-focus: var(--navds-semantic-color-text);
--navds-accordion-menu-color-background-hover: var(
--navds-global-color-blue-50
);
--navds-accordion-menu-color-text-active: var(--navds-semantic-color-text);
--navds-accordion-menu-outline-focus: var(--navds-semantic-color-focus);
}
.navds-accordion-menu__list {
@@ -97,7 +99,7 @@
}
.navds-accordion-menu-item--active {
box-shadow: inset 0.5rem 0 var(--navds-color-text-link);
box-shadow: inset 0.5rem 0 var(--navds-semantic-color-link);
color: var(--navds-accordion-menu-color-text-active);
text-decoration: none;
}
+11 -5
View File
@@ -1,9 +1,15 @@
:root {
--navds-accordion-color-text: var(--navds-color-darkgray);
--navds-accordion-color-background: var(--navds-color-background);
--navds-accordion-color-text-hover: var(--navds-color-blue-50);
--navds-accordion-color-border-hover: var(--navds-color-blue-50);
--navds-accordion-color-border-focus: var(--navds-color-background);
--navds-accordion-color-text: var(--navds-semantic-color-text);
--navds-accordion-color-background: var(
---navds-semantic-color-component-background-light
);
--navds-accordion-color-text-hover: var(--navds-semantic-color-link);
--navds-accordion-color-border-hover: var(
--navds-semantic-color-interaction-primary
);
--navds-accordion-color-border-focus: var(
---navds-semantic-color-component-background-light
);
}
.navds-accordion .ReactCollapse--collapse {
+49 -19
View File
@@ -1,21 +1,51 @@
:root {
--navds-alert-color-border: var(--navds-color-gray-40);
--navds-alert-color-error-border: var(--navds-color-error-border);
--navds-alert-color-error-background: var(--navds-color-error-background);
--navds-alert-color-warning-border: var(--navds-color-warning-border);
--navds-alert-color-warning-background: var(--navds-color-warning-background);
--navds-alert-color-info-border: var(--navds-color-info-border);
--navds-alert-color-info-background: var(--navds-color-info-background);
--navds-alert-color-success-border: var(--navds-color-success-border);
--navds-alert-color-success-background: var(--navds-color-success-background);
--navds-alert-color-error-icon: var(--navds-color-red-60);
--navds-alert-color-error-icon-background: var(--navds-color-white);
--navds-alert-color-warning-icon: var(--navds-color-orange-40);
--navds-alert-color-warning-icon-background: var(--navds-color-darkgray);
--navds-alert-color-info-icon: var(--navds-color-lightblue-70);
--navds-alert-color-info-icon-background: var(--navds-color-white);
--navds-alert-color-success-icon: var(--navds-color-green-70);
--navds-alert-color-success-icon-background: var(--navds-color-white);
--navds-alert-color-border: var(--navds-semantic-color-border-muted);
--navds-alert-color-error-border: var(
--navds-semantic-color-feedback-danger-border
);
--navds-alert-color-error-background: var(
--navds-semantic-color-feedback-danger-background
);
--navds-alert-color-warning-border: var(
--navds-semantic-color-feedback-warning-border
);
--navds-alert-color-warning-background: var(
--navds-semantic-color-feedback-warning-background
);
--navds-alert-color-info-border: var(
--navds-semantic-color-feedback-info-border
);
--navds-alert-color-info-background: var(
--navds-semantic-color-feedback-info-background
);
--navds-alert-color-success-border: var(
--navds-semantic-color-feedback-success-border
);
--navds-alert-color-success-background: var(
--navds-semantic-color-feedback-success-background
);
--navds-alert-color-error-icon: var(
--navds-semantic-color-feedback-danger-icon
);
--navds-alert-color-error-icon-background: var(
--navds-semantic-color-component-background-light
);
--navds-alert-color-warning-icon: var(
--navds-semantic-color-feedback-warning-icon
);
--navds-alert-color-warning-icon-background: var(
--navds-semantic-color-component-background-inverted
);
--navds-alert-color-info-icon: var(--navds-semantic-color-feedback-info-icon);
--navds-alert-color-info-icon-background: var(
--navds-semantic-color-component-background-light
);
--navds-alert-color-success-icon: var(
--navds-semantic-color-feedback-success-icon
);
--navds-alert-color-success-icon-background: var(
--navds-semantic-color-component-background-light
);
}
.navds-alert {
@@ -44,12 +74,12 @@
flex-shrink: 0;
font-size: 1.5rem;
align-self: flex-start;
height: var(--navds-font-line-height-xl);
height: var(--navds-font-line-height-xlarge);
}
.navds-alert--small > .navds-alert__icon {
font-size: 1.25rem;
height: var(--navds-font-line-height-l);
height: var(--navds-font-line-height-large);
}
.navds-alert--error {
+3 -3
View File
@@ -22,13 +22,13 @@ html {
body {
font-family: var(--navds-font-family);
line-height: 1.375;
color: var(--navds-color-text-primary);
line-height: 1.333;
color: var(--navds-semantic-color-text);
font-size: 1.125rem;
}
a {
color: var(--navds-color-text-link);
color: var(--navds-semantic-color-link);
}
/* https://web.dev/prefers-reduced-motion/ */
+85 -32
View File
@@ -1,53 +1,79 @@
:root {
/* Primary */
--navds-button-color-primary-text: var(--navds-color-white);
--navds-button-color-primary-border-focus: var(--navds-color-white);
--navds-button-color-primary-background: var(--navds-color-action-default);
--navds-button-color-primary-text: var(--navds-semantic-color-text-inverted);
--navds-button-color-primary-border-focus: var(
--navds-semantic-color-text-inverted
);
--navds-button-color-primary-background: var(
--navds-semantic-color-interaction-primary
);
--navds-button-color-primary-background-hover: var(
--navds-color-action-hover
--navds-semantic-color-interaction-primary-hover
);
--navds-button-color-primary-background-active: var(
--navds-color-action-active
--navds-semantic-color-interaction-primary-selected
);
/* Secondary */
--navds-button-color-secondary-text: var(--navds-color-action-default);
--navds-button-color-secondary-text-hover: var(--navds-color-text-inverse);
--navds-button-color-secondary-text-active: var(--navds-color-text-inverse);
--navds-button-color-secondary-border: var(--navds-color-action-default);
--navds-button-color-secondary-text: var(
--navds-semantic-color-interaction-primary
);
--navds-button-color-secondary-text-hover: var(
--navds-semantic-color-text-inverted
);
--navds-button-color-secondary-text-active: var(
--navds-semantic-color-text-inverted
);
--navds-button-color-secondary-border: var(
--navds-semantic-color-interaction-primary
);
--navds-button-color-secondary-border-focus-active-hover: var(
--navds-color-white
--navds-semantic-color-component-background-light
);
--navds-button-color-secondary-background: var(
--navds-semantic-color-component-background-light
);
--navds-button-color-secondary-background: var(--navds-color-background);
--navds-button-color-secondary-background-hover: var(
--navds-color-action-hover
--navds-semantic-color-interaction-primary-hover
);
--navds-button-color-secondary-background-active: var(
--navds-color-action-active
--navds-semantic-color-interaction-primary-selected
);
/* Tertiary */
--navds-button-color-tertiary-text: var(--navds-color-action-default);
--navds-button-color-tertiary-text-active: var(--navds-color-text-inverse);
--navds-button-color-tertiary-border-hover: var(--navds-color-action-default);
--navds-button-color-tertiary-border-focus: var(--navds-color-action-default);
--navds-button-color-tertiary-border-active: var(--navds-color-white);
--navds-button-color-tertiary-text: var(
--navds-semantic-color-interaction-primary
);
--navds-button-color-tertiary-text-active: var(
--navds-semantic-color-text-inverted
);
--navds-button-color-tertiary-border-hover: var(
--navds-semantic-color-interaction-primary
);
--navds-button-color-tertiary-border-focus: var(
--navds-semantic-color-interaction-primary
);
--navds-button-color-tertiary-border-active: var(
--navds-semantic-color-component-background-light
);
--navds-button-color-tertiary-background-active: var(
--navds-color-action-active
--navds-semantic-color-interaction-primary-selected
);
/* Danger */
--navds-button-color-danger-text: var(--navds-color-white);
--navds-button-color-danger-background: var(--navds-color-danger-default);
--navds-button-color-danger-background-hover: var(--navds-color-danger-hover);
--navds-button-color-danger-text: var(--navds-semantic-color-text-inverted);
--navds-button-color-danger-background: var(
--navds-semantic-color-interaction-danger
);
--navds-button-color-danger-background-hover: var(
--navds-semantic-color-interaction-danger-hover
);
--navds-button-color-danger-background-active: var(
--navds-color-danger-active
--navds-semantic-color-interaction-danger-selected
);
--navds-button-color-danger-border-focus: var(
--navds-semantic-color-component-background-light
);
--navds-button-color-danger-border-focus: var(--navds-color-white);
/* Disabled */
--navds-button-color-text-disabled: var(--navds-color-text-inverse);
--navds-button-color-background-disabled: var(--navds-color-disabled);
}
.navds-button {
@@ -111,8 +137,13 @@
var(--navds-shadow-focus);
}
.navds-button--primary:hover:disabled,
.navds-button--primary:active:disabled {
background-color: var(--navds-button-color-primary-background);
}
/**************************
* .navds-button--secondary *
* .navds-button--secondary *
**************************/
.navds-button--secondary {
@@ -145,6 +176,13 @@
var(--navds-shadow-focus);
}
.navds-button--secondary:disabled,
.navds-button--secondary:hover:disabled {
color: var(--navds-button-color-secondary-text);
background-color: var(--navds-button-color-secondary-background);
box-shadow: inset 0 0 0 2px var(--navds-button-color-secondary-border);
}
/****************************
* .navds-button--tertiary *
****************************/
@@ -168,11 +206,23 @@
box-shadow: inset 0 0 0 1px var(--navds-button-color-tertiary-border-active);
}
.navds-button--tertiary:active:hover {
background-color: var(--navds-button-color-tertiary-background-active);
}
.navds-button--tertiary:active:focus {
box-shadow: inset 0 0 0 1px var(--navds-button-color-tertiary-border-active),
var(--navds-shadow-focus);
}
.navds-button--tertiary:disabled,
.navds-button--tertiary:active:disabled,
.navds-button--tertiary:active:hover:disabled {
color: var(--navds-button-color-tertiary-text);
background: none;
box-shadow: none;
}
/*************************
* .navds-button--danger *
*************************/
@@ -195,14 +245,17 @@
var(--navds-shadow-focus);
}
.navds-button--danger:hover:disabled,
.navds-button--danger:active:disabled {
background-color: var(--navds-button-color-danger-background);
}
/**************************
* .navds-button:disabled *
**************************/
.navds-button:disabled {
color: var(--navds-button-color-text-disabled);
background-color: var(--navds-button-color-background-disabled);
opacity: 0.3;
cursor: not-allowed;
box-shadow: none;
transform: none;
}
+20 -10
View File
@@ -1,15 +1,25 @@
:root {
--navds-card-micro-color-text: var(--navds-color-text-primary);
--navds-card-micro-color-background: var(--navds-color-orange-20);
--navds-card-micro-color-text: var(--navds-semantic-color-text);
--navds-card-micro-color-background: var(--navds-global-color-orange-200);
--navds-card-micro-color-border: transparent;
--navds-card-micro-color-text-hover: var(--navds-color-blue-50);
--navds-card-micro-color-background-hover: var(--navds-color-white);
--navds-card-micro-color-border-hover: var(--navds-color-blue-50);
--navds-card-micro-color-text-focus: var(--navds-color-blue-50);
--navds-card-micro-color-background-focus: var(--navds-color-white);
--navds-card-micro-color-shadow-focus: var(--navds-color-blue-80);
--navds-card-micro-color-background-active: var(--navds-color-blue-70);
--navds-card-micro-color-text-active: var(--navds-color-white);
--navds-card-micro-color-text-hover: var(--navds-semantic-color-link);
--navds-card-micro-color-background-hover: var(
--navds-semantic-color-component-background-light
);
--navds-card-micro-color-border-hover: var(
--navds-semantic-color-interaction-primary
);
--navds-card-micro-color-text-focus: var(--navds-semantic-color-link);
--navds-card-micro-color-background-focus: var(
--navds-semantic-color-component-background-light
);
--navds-card-micro-color-shadow-focus: var(--navds-semantic-color-focus);
--navds-card-micro-color-background-active: var(
--navds-semantic-color-interaction-primary
);
--navds-card-micro-color-text-active: var(
--navds-semantic-color-text-inverted
);
}
/*
+3 -3
View File
@@ -1,12 +1,12 @@
.navds-content-container {
margin-left: auto;
margin-right: auto;
max-width: var(--navds-content-container-max-width);
padding: var(--navds-content-container-padding-small);
max-width: 79.5rem;
padding: var(--navds-spacing-4);
}
@media (min-width: 448px) {
.navds-content-container {
padding: var(--navds-content-container-padding-medium-and-larger);
padding: var(--navds-spacing-6);
}
}
-13
View File
@@ -1,13 +0,0 @@
.navds-checkbox-group--small > .navds-checkboxes {
display: flex;
flex-direction: column;
gap: 4px;
}
.navds-fieldset.navds-checkbox-group--medium > .navds-checkboxes {
margin-top: 0;
}
.navds-fieldset.navds-checkbox-group--medium > .navds-fieldset__error {
margin-top: 0;
}
-146
View File
@@ -1,146 +0,0 @@
:root {
--navds-checkbox-color-background: var(--navds-color-white);
--navds-checkbox-color-border: var(--navds-color-gray-60);
--navds-checkbox-color-label-hover: var(--navds-color-blue-50);
--navds-checkbox-color-border-hover: var(--navds-color-blue-50);
--navds-checkbox-color-background-hover: var(--navds-color-blue-10);
--navds-checkbox-color-description: var(--navds-color-gray-80);
--navds-checkbox-color-border-checked: var(--navds-color-blue-50);
--navds-checkbox-color-background-checked: var(--navds-color-blue-50);
--navds-checkbox-color-shadow-error: var(--navds-color-red-50);
--navds-checkbox-color-border-error: var(--navds-color-red-50);
/* Disabled */
--navds-checkbox-color-label-disabled: var(--navds-color-gray-40);
--navds-checkbox-color-border-disabled: var(--navds-color-gray-60);
--navds-checkbox-color-background-disabled: var(--navds-color-gray-10);
--navds-checkbox-color-border-checked-disabled: var(--navds-color-gray-40);
--navds-checkbox-color-background-checked-disabled: var(
--navds-color-gray-40
);
}
.navds-checkbox {
position: relative;
padding: var(--navds-spacing-3) 0;
}
.navds-checkbox__input {
cursor: pointer;
position: absolute;
z-index: 1;
width: 48px;
height: 48px;
left: -12px;
margin: 0;
opacity: 0;
top: 0;
}
.navds-checkbox__label {
display: flex;
width: fit-content;
gap: 12px;
cursor: pointer;
}
.navds-checkbox__description {
padding-left: calc(48px - 12px);
color: var(--navds-checkbox-color-description);
}
.navds-checkbox--with-description {
padding-bottom: 0;
}
.navds-checkbox .navds-error-message {
margin-top: var(--navds-spacing-3);
}
.navds-checkbox--with-description .navds-error-message {
margin-top: 0;
}
.navds-checkbox--with-error-message {
padding-bottom: var(--navds-spacing-2);
}
.navds-checkbox__label::before {
content: "";
background-color: var(--navds-checkbox-color-background);
border: 1px solid var(--navds-checkbox-color-border);
width: 1.5rem;
height: 1.5rem;
border-radius: 4px;
flex-shrink: 0;
}
.navds-checkbox--small {
padding: var(--navds-spacing-1) 0;
}
.navds-checkbox--small > .navds-checkbox__input {
width: 24px;
height: 24px;
top: 2px;
left: 0;
}
.navds-checkbox--small > .navds-checkbox__label::before {
margin-top: -2px;
margin-bottom: -2px;
}
.navds-checkbox__input:hover + .navds-checkbox__label {
color: var(--navds-checkbox-color-label-hover);
}
.navds-checkbox__input:hover + .navds-checkbox__label::before {
border-color: var(--navds-checkbox-color-border-hover);
background-color: var(--navds-checkbox-color-background-hover);
}
.navds-checkbox__input:focus + .navds-checkbox__label::before {
box-shadow: var(--navds-shadow-focus);
}
.navds-checkbox__input:checked + .navds-checkbox__label::before {
background-image: var(--navds-checkmark-image-white);
background-position: center center;
background-repeat: no-repeat;
background-size: 75%;
border: 2px solid var(--navds-checkbox-color-border-checked);
background-color: var(--navds-checkbox-color-background-checked);
}
.navds-checkbox__input:checked:focus + .navds-checkbox__label::before {
background-color: white;
background-image: var(--navds-checkmark-image-blue);
}
.navds-checkbox--error
> .navds-checkbox__input:not(:hover):not(:focus):not(:disabled):not(:checked)
+ .navds-checkbox__label::before {
box-shadow: 0 0 0 1px var(--navds-checkbox-color-shadow-error);
border-color: var(--navds-checkbox-color-border-error);
}
.navds-checkbox--small .navds-error-message {
margin-top: 4px;
}
.navds-checkbox__input:disabled,
.navds-checkbox__input:disabled + .navds-checkbox__label {
color: var(--navds-checkbox-color-label-disabled);
cursor: not-allowed;
}
.navds-checkbox__input:disabled + .navds-checkbox__label::before {
background-color: var(--navds-checkbox-color-background-disabled);
border-color: var(--navds-checkbox-color-border-disabled);
}
.navds-checkbox__input:disabled:checked + .navds-checkbox__label::before {
background-color: var(--navds-checkbox-color-background-checked-disabled);
border-color: var(--navds-checkbox-color-border-checked-disabled);
}
+11 -11
View File
@@ -1,30 +1,30 @@
:root {
--navds-confirmation-panel-color-background: var(
--navds-color-warning-background
--navds-semantic-color-feedback-warning-background
);
--navds-confirmation-panel-color-background-checked: var(
--navds-color-success-background
--navds-semantic-color-feedback-success-background
);
--navds-confirmation-panel-color-border-checked: var(
--navds-color-success-background
--navds-semantic-color-feedback-success-background
);
--navds-confirmation-panel-color-background-error: var(
--navds-color-error-background
--navds-semantic-color-feedback-danger-background
);
--navds-confirmation-panel-color-checkbox-background-checked-hover: var(
--navds-color-green-70
--navds-global-color-green-700
);
--navds-confirmation-panel-color-checkbox-border-checked-hover: var(
--navds-color-green-70
--navds-global-color-green-700
);
--navds-confirmation-panel-color-checkbox-background-checked: var(
--navds-color-green-50
--navds-global-color-green-500
);
--navds-confirmation-panel-color-checkbox-border-checked: var(
--navds-color-green-50
--navds-semantic-color-feedback-success-border
);
--navds-confirmation-panel-color-checkbox-label-checked: var(
--navds-color-darkgray
--navds-semantic-color-text
);
}
@@ -77,7 +77,7 @@
--navds-confirmation-panel-color-checkbox-background-checked
);
border-color: var(--navds-confirmation-panel-color-checkbox-border-checked);
background-image: var(--navds-checkmark-image-white);
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMyAxMCI+ICAgIDxnPiAgICA8cGF0aCBmaWxsPSIjRkZGRkZGIiBkPSJNNCwxMGMtMC40LDAtMC44LTAuMS0xLjEtMC40TDAuNCw3LjFDMC4xLDYuOCwwLDYuNCwwLDZzMC4yLTAuOCwwLjUtMS4xQzEsNC40LDIsNC40LDIuNSw0LjlMNCw2LjRsNi40LTYgICAgQzEwLjgsMC4xLDExLjEsMCwxMS41LDBjMC40LDAsMC44LDAuMiwxLDAuNWMwLjYsMC42LDAuNSwxLjYtMC4xLDIuMXYwTDUsOS42QzQuNyw5LjksNC40LDEwLDQsMTB6IE0xMS44LDEuOUwxMS44LDEuOSAgICBDMTEuOCwxLjksMTEuOCwxLjksMTEuOCwxLjl6IE0xMS4yLDEuMUMxMS4yLDEuMSwxMS4yLDEuMSwxMS4yLDEuMUwxMS4yLDEuMXoiLz4gICAgPC9nPjwvc3ZnPg==);
}
.navds-confirmation-panel--checked
@@ -94,5 +94,5 @@
.navds-confirmation-panel--checked
.navds-checkbox__input:focus:hover
+ .navds-checkbox__label::before {
background-image: var(--navds-checkmark-image-white);
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMyAxMCI+ICAgIDxnPiAgICA8cGF0aCBmaWxsPSIjRkZGRkZGIiBkPSJNNCwxMGMtMC40LDAtMC44LTAuMS0xLjEtMC40TDAuNCw3LjFDMC4xLDYuOCwwLDYuNCwwLDZzMC4yLTAuOCwwLjUtMS4xQzEsNC40LDIsNC40LDIuNSw0LjlMNCw2LjRsNi40LTYgICAgQzEwLjgsMC4xLDExLjEsMCwxMS41LDBjMC40LDAsMC44LDAuMiwxLDAuNWMwLjYsMC42LDAuNSwxLjYtMC4xLDIuMXYwTDUsOS42QzQuNyw5LjksNC40LDEwLDQsMTB6IE0xMS44LDEuOUwxMS44LDEuOSAgICBDMTEuOCwxLjksMTEuOCwxLjksMTEuOCwxLjl6IE0xMS4yLDEuMUMxMS4yLDEuMSwxMS4yLDEuMSwxMS4yLDEuMUwxMS4yLDEuMXoiLz4gICAgPC9nPjwvc3ZnPg==);
}
+9 -2
View File
@@ -1,8 +1,15 @@
:root {
--navds-error-message-color-text: var(--navds-color-text-error);
--navds-error-message-color-text: var(
--navds-semantic-color-feedback-danger-text
);
}
.navds-error-message {
display: block;
color: var(--navds-error-message-color-text);
display: flex;
gap: var(--navds-spacing-2);
}
.navds-error-message::before {
content: "•";
}
+6 -2
View File
@@ -1,6 +1,10 @@
:root {
--navds-error-summary-color-background: var(--navds-color-white);
--navds-error-summary-color-border: var(--navds-color-error-border);
--navds-error-summary-color-background: var(
--navds-semantic-color-component-background-light
);
--navds-error-summary-color-border: var(
--navds-semantic-color-feedback-danger-border
);
}
.navds-error-summary {
+8 -3
View File
@@ -6,14 +6,19 @@
}
.navds-fieldset > :not(:first-child):not(:empty) {
margin-top: 8px;
margin-top: var(--navds-spacing-2);
}
.navds-fieldset--small > :not(:first-child):not(:empty) {
margin-top: 4px;
.navds-fieldset > .navds-fieldset__description:not(:empty) {
margin-top: var(--navds-spacing-1);
}
/* Applied when hideLegend is applied to fieldset */
.navds-fieldset > .sr-only + :not(:first-child):not(:empty) {
margin-top: 0;
}
.navds-fieldset:disabled > .navds-fieldset__legend,
.navds-fieldset:disabled > .navds-fieldset__description {
opacity: 0.3;
}
+1 -6
View File
@@ -1,11 +1,6 @@
.navds-form-field > :not(:first-child):not(:empty),
.navds-form-field > input:not(:first-child) {
margin-top: 8px;
}
.navds-form-field--small > :not(:first-child):not(:empty),
.navds-form-field--small > input:not(:first-child) {
margin-top: 4px;
margin-top: var(--navds-spacing-2);
}
/* Applied when hideLabel is applied to form-element */
+2 -4
View File
@@ -4,13 +4,11 @@
@import "fieldset.css";
@import "form.css";
@import "error-summary.css";
@import "checkbox.css";
@import "checkbox-group.css";
@import "confirmation-panel.css";
@import "error-message.css";
@import "radio.css";
@import "radio-group.css";
@import "radio-checkbox.css";
@import "select.css";
@import "switch.css";
@import "text-field.css";
@import "textarea.css";
@import "search-field.css";
+182
View File
@@ -0,0 +1,182 @@
:root {
--navds-radio-checkbox-color-background: var(
--navds-semantic-color-canvas-background-light
);
--navds-radio-checkbox-color-background-hover: var(
--navds-semantic-color-interaction-primary-hover-subtle
);
--navds-radio-checkbox-color-background-checked: var(
--navds-semantic-color-interaction-primary
);
--navds-radio-checkbox-color-shadow: var(--navds-semantic-color-border);
--navds-radio-checkbox-color-shadow-hover: var(
--navds-semantic-color-interaction-primary
);
--navds-radio-checkbox-color-shadow-checked: var(
--navds-semantic-color-interaction-primary
);
--navds-radio-checkbox-color-shadow-error: var(
--navds-semantic-color-interaction-danger
);
--navds-radio-checkbox-color-label-hover: var(
--navds-semantic-color-interaction-primary
);
}
.navds-checkbox,
.navds-radio {
position: relative;
width: fit-content;
}
.navds-checkbox__input,
.navds-radio__input {
position: absolute;
width: 48px;
height: 48px;
top: 0;
left: -12px;
z-index: 1;
opacity: 0;
cursor: pointer;
}
.navds-checkbox__label,
.navds-radio__label {
padding: var(--navds-spacing-3) 0;
cursor: pointer;
display: flex;
gap: var(--navds-spacing-2);
}
.navds-checkbox__label::before,
.navds-radio__label::before {
content: "";
background-color: var(--navds-radio-checkbox-color-background);
box-shadow: inset 0 0 0 2px var(--navds-radio-checkbox-color-shadow);
width: 1.5rem;
height: 1.5rem;
border-radius: 4px;
flex-shrink: 0;
}
.navds-radio__label::before {
border-radius: 50%;
}
.navds-checkbox__content,
.navds-radio__content {
display: flex;
flex-direction: column;
gap: var(--navds-spacing-1);
}
.navds-checkbox__description,
.navds-radio__description {
color: var(--navds-color-text-primary);
}
.navds-checkbox--small > .navds-checkbox__input,
.navds-radio--small > .navds-radio__input {
width: 32px;
height: 32px;
top: 0;
left: -6px;
}
.navds-checkbox--small > .navds-checkbox__label,
.navds-radio--small > .navds-radio__label {
padding: 6px 0;
}
.navds-checkbox--small > .navds-checkbox__label::before,
.navds-radio--small > .navds-radio__label::before {
width: 1.25rem;
height: 1.25rem;
}
.navds-checkbox__input:focus + .navds-checkbox__label::before,
.navds-radio__input:focus + .navds-radio__label::before {
box-shadow: inset 0 0 0 2px var(--navds-radio-checkbox-color-shadow),
var(--navds-shadow-focus);
}
.navds-checkbox__input:hover:focus + .navds-checkbox__label::before,
.navds-radio__input:hover:focus + .navds-radio__label::before {
box-shadow: inset 0 0 0 2px var(--navds-radio-checkbox-color-shadow-hover),
var(--navds-shadow-focus);
}
.navds-checkbox__input:checked + .navds-checkbox__label::before {
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMyAxMCI+ICAgIDxnPiAgICA8cGF0aCBmaWxsPSIjRkZGRkZGIiBkPSJNNCwxMGMtMC40LDAtMC44LTAuMS0xLjEtMC40TDAuNCw3LjFDMC4xLDYuOCwwLDYuNCwwLDZzMC4yLTAuOCwwLjUtMS4xQzEsNC40LDIsNC40LDIuNSw0LjlMNCw2LjRsNi40LTYgICAgQzEwLjgsMC4xLDExLjEsMCwxMS41LDBjMC40LDAsMC44LDAuMiwxLDAuNWMwLjYsMC42LDAuNSwxLjYtMC4xLDIuMXYwTDUsOS42QzQuNyw5LjksNC40LDEwLDQsMTB6IE0xMS44LDEuOUwxMS44LDEuOSAgICBDMTEuOCwxLjksMTEuOCwxLjksMTEuOCwxLjl6IE0xMS4yLDEuMUMxMS4yLDEuMSwxMS4yLDEuMSwxMS4yLDEuMUwxMS4yLDEuMXoiLz4gICAgPC9nPjwvc3ZnPg==);
background-position: 6px center;
background-repeat: no-repeat;
background-size: 13px;
box-shadow: none;
background-color: var(--navds-radio-checkbox-color-background-checked);
}
.navds-checkbox--small
> .navds-checkbox__input:checked
+ .navds-checkbox__label::before {
background-position: 4px center;
}
.navds-checkbox__input:checked:focus + .navds-checkbox__label::before {
box-shadow: inset 0 0 0 1px white, var(--navds-shadow-focus);
}
.navds-radio__input:checked + .navds-radio__label::before {
box-shadow: inset 0 0 0 2px var(--navds-radio-checkbox-color-shadow-checked),
inset 0 0 0 4px #fff;
background-color: var(--navds-radio-checkbox-color-background-checked);
}
.navds-radio__input:checked:focus + .navds-radio__label::before {
box-shadow: inset 0 0 0 2px var(--navds-radio-checkbox-color-shadow-checked),
inset 0 0 0 4px #fff, var(--navds-shadow-focus);
}
.navds-checkbox__input:hover:not(:disabled) + .navds-checkbox__label,
.navds-radio__input:hover:not(:disabled) + .navds-radio__label {
color: var(--navds-radio-checkbox-color-label-hover);
}
.navds-checkbox__input:hover:not(:disabled):not(:checked):not(:focus)
+ .navds-checkbox__label::before,
.navds-radio__input:hover:not(:disabled):not(:checked):not(:focus)
+ .navds-radio__label::before {
box-shadow: inset 0 0 0 2px var(--navds-radio-checkbox-color-shadow-hover);
background-color: var(--navds-radio-checkbox-color-background-hover);
}
.navds-checkbox--error
> .navds-checkbox__input:not(:hover):not(:disabled):not(:checked)
+ .navds-checkbox__label::before,
.navds-radio--error
> .navds-radio__input:not(:hover):not(:disabled):not(:checked)
+ .navds-radio__label::before {
box-shadow: inset 0 0 0 2px var(--navds-radio-checkbox-color-shadow-error);
}
.navds-checkbox--error
> .navds-checkbox__input:focus:not(:hover):not(:disabled):not(:checked)
+ .navds-checkbox__label::before,
.navds-radio--error
> .navds-radio__input:focus:not(:hover):not(:disabled):not(:checked)
+ .navds-radio__label::before {
box-shadow: inset 0 0 0 2px var(--navds-radio-checkbox-color-shadow-error),
var(--navds-shadow-focus);
}
.navds-checkbox--disabled,
.navds-radio--disabled {
opacity: 0.3;
}
.navds-checkbox--disabled > .navds-checkbox__input,
.navds-checkbox--disabled > .navds-checkbox__label,
.navds-radio--disabled > .navds-radio__input,
.navds-radio--disabled > .navds-radio__label {
cursor: not-allowed;
}
-13
View File
@@ -1,13 +0,0 @@
.navds-radio-group--small > .navds-radio-buttons {
display: flex;
flex-direction: column;
gap: 4px;
}
.navds-fieldset.navds-radio-group--medium > .navds-radio-buttons {
margin-top: 0;
}
.navds-fieldset.navds-radio-group--medium > .navds-fieldset__error {
margin-top: 0;
}
-150
View File
@@ -1,150 +0,0 @@
:root {
--navds-radio-color-description: var(--navds-color-gray-80);
--navds-radio-color-background: var(--navds-color-white);
--navds-radio-color-border: var(--navds-color-gray-60);
--navds-radio-color-label-hover: var(--navds-color-blue-50);
--navds-radio-color-border-hover: var(--navds-color-blue-50);
--navds-radio-color-background-hover: var(--navds-color-blue-10);
--navds-radio-color-border-checked: var(--navds-color-blue-50);
--navds-radio-color-shadow-checked: var(--navds-color-blue-50);
--navds-radio-color-shadow-checked-focus: var(--navds-color-blue-80);
--navds-radio-color-shadow-background-checked-focus: var(--navds-color-white);
--navds-radio-color-shadow-dot-checked-focus: var(--navds-color-blue-50);
--navds-radio-color-shadow-error: var(--navds-color-red-50);
--navds-radio-color-border-error: var(--navds-color-red-50);
/* Disabled */
--navds-radio-color-background-disabled: var(--navds-color-gray-10);
--navds-radio-color-border-disabled: var(--navds-color-gray-60);
--navds-radio-color-label-disabled: var(--navds-color-gray-40);
--navds-radio-color-background-disabled-checked: var(--navds-color-gray-40);
--navds-radio-color-border-disabled-checked: var(--navds-color-gray-40);
--navds-radio-color-shadow-disabled-checked: var(--navds-color-gray-40);
}
.navds-radio {
position: relative;
padding: var(--navds-spacing-3) 0;
}
.navds-radio--with-description .navds-error-message {
margin-top: 0;
}
.navds-radio .navds-error-message {
margin-top: var(--navds-spacing-3);
}
.navds-radio__input {
cursor: pointer;
position: absolute;
z-index: 1;
width: 48px;
height: 48px;
left: -12px;
margin: 0;
opacity: 0;
top: 0;
}
.navds-radio__label {
display: flex;
width: fit-content;
gap: 12px;
min-width: 48px;
cursor: pointer;
}
.navds-radio__description {
padding-left: calc(48px - 12px);
color: var(--navds-radio-color-description);
}
.navds-radio--with-description {
padding-bottom: 0;
}
.navds-radio--with-error-message {
padding-bottom: var(--navds-spacing-2);
}
.navds-radio__label::before {
content: "";
background-color: var(--navds-radio-color-background);
border: 1px solid var(--navds-radio-color-border);
width: 1.5rem;
height: 1.5rem;
flex-shrink: 0;
border-radius: 50%;
}
.navds-radio--small {
padding: var(--navds-spacing-1) 0;
}
.navds-radio--small > .navds-radio__input {
width: 24px;
height: 24px;
top: 2px;
left: 0;
}
.navds-radio--small > .navds-radio__label::before {
margin-top: -2px;
margin-bottom: -2px;
}
.navds-radio__input:hover + .navds-radio__label {
color: var(--navds-radio-color-label-hover);
}
.navds-radio__input:hover + .navds-radio__label::before {
border-color: var(--navds-radio-color-border-hover);
background-color: var(--navds-radio-color-background-hover);
}
.navds-radio__input:focus + .navds-radio__label::before {
box-shadow: var(--navds-shadow-focus);
}
.navds-radio__input:checked + .navds-radio__label::before {
border: 2px solid var(--navds-radio-color-border-checked);
box-shadow: 0 0 0 3px #fff inset,
0 0 0 2rem var(--navds-radio-color-shadow-checked) inset;
}
.navds-radio__input:checked:focus + .navds-radio__label::before {
transition: box-shadow 200ms cubic-bezier(0.465, 0.183, 0.153, 0.946);
box-shadow: 0 0 0 3px var(--navds-radio-color-shadow-checked-focus),
0 0 0 3px var(--navds-radio-color-shadow-background-checked-focus) inset,
0 0 0 2rem var(--navds-radio-color-shadow-dot-checked-focus) inset;
}
.navds-radio--error
> .navds-radio__input:not(:hover):not(:focus):not(:disabled):not(:checked)
+ .navds-radio__label::before {
box-shadow: 0 0 0 1px var(--navds-radio-color-shadow-error);
border-color: var(--navds-radio-color-border-error);
}
.navds-radio--small .navds-error-message {
margin-top: 4px;
}
.navds-radio__input:disabled,
.navds-radio__input:disabled + .navds-radio__label {
color: var(--navds-radio-color-label-disabled);
cursor: not-allowed;
}
.navds-radio__input:disabled + .navds-radio__label::before {
background-color: var(--navds-radio-color-background-disabled);
border-color: var(--navds-radio-color-border-disabled);
}
.navds-radio__input:disabled:checked + .navds-radio__label::before {
background-color: var(--navds-radio-color-background-disabled-checked);
border-color: var(--navds-radio-color-border-disabled-checked);
box-shadow: 0 0 0 3px #fff inset,
0 0 0 2rem var(--navds-radio-color-shadow-disabled-checked) inset;
}
+17 -3
View File
@@ -1,7 +1,13 @@
:root {
--navds-search-field-color-shadow-error: var(--navds-color-red-50);
--navds-search-field-color-border-error: var(--navds-color-red-50);
--navds-search-field-color-clearbutton-border: var(--navds-color-gray-60);
--navds-search-field-color-shadow-error: var(
--navds-semantic-color-interaction-danger
);
--navds-search-field-color-border-error: var(
--navds-semantic-color-interaction-danger
);
--navds-search-field-color-clearbutton-border: var(
--navds-semantic-color-border
);
}
.navds-search-field__input-wrapper {
@@ -29,6 +35,10 @@
border-bottom-left-radius: 0;
}
.navds-search-field__input-wrapper > :last-child:first-child {
border-radius: 4px;
}
.navds-search-field__input-wrapper :focus {
z-index: var(--navds-z-index-focus);
}
@@ -43,3 +53,7 @@
box-shadow: 0 0 0 1px var(--navds-search-field-color-shadow-error) inset;
border-color: var(--navds-search-field-color-border-error);
}
.navds-search-field--disabled {
opacity: 0.3;
}
+28 -14
View File
@@ -1,12 +1,22 @@
:root {
--navds-select-color-background: var(--navds-color-white);
--navds-select-color-border: var(--navds-color-gray-60);
--navds-select-color-border-hover: var(--navds-color-blue-50);
--navds-select-color-border-error: var(--navds-color-red-50);
--navds-select-color-shadow-error: var(--navds-color-red-50);
--navds-select-color-border-disabled: var(--navds-color-gray-40);
--navds-select-color-background-disabled: var(--navds-color-gray-10);
--navds-select-color-text-disabled: var(--navds-color-darkgray);
--navds-select-color-background: var(
--navds-semantic-color-component-background-light
);
--navds-select-color-border: var(--navds-semantic-color-border);
--navds-select-color-border-hover: var(
--navds-semantic-color-interaction-primary
);
--navds-select-color-border-error: var(
--navds-semantic-color-interaction-danger
);
--navds-select-color-shadow-error: var(
--navds-semantic-color-interaction-danger
);
--navds-select-color-border-disabled: var(--navds-global-color-gray-400);
--navds-select-color-background-disabled: var(
--navds-semantic-color-component-background-alternate
);
--navds-select-color-text-disabled: var(--navds-semantic-color-text);
}
.navds-select__input {
@@ -59,12 +69,16 @@
border-color: var(--navds-select-color-border-error);
}
/* Disabled handling */
.navds-select__input:disabled,
.navds-select__input[read-only] {
background-color: var(--navds-select-color-background-disabled);
border-color: var(--navds-select-color-border-disabled);
/*
Disabled handling
*/
.navds-select--disabled {
opacity: 0.3;
}
.navds-select__input:disabled {
background-color: var(--navds-select-color-background);
border-color: var(--navds-select-color-border);
box-shadow: none;
color: var(--navds-select-color-text-disabled);
cursor: not-allowed;
}
+183
View File
@@ -0,0 +1,183 @@
:root {
--navds-switch-color-label: var(--navds-color-text-primary);
--navds-switch-color-label-hover: var(
--navds-semantic-color-interaction-primary
);
--navds-switch-color-track-background: var(--navds-semantic-color-text-muted);
--navds-switch-color-track-background-checked: var(
--navds-semantic-color-interaction-primary
);
--navds-switch-color-track-background-hover-checked: var(
--navds-semantic-color-interaction-primary-hover
);
--navds-switch-color-track-shadow-inner-focus: var(
--navds-semantic-color-component-background-light
);
--navds-switch-color-thumb: var(
--navds-semantic-color-component-background-light
);
--navds-switch-color-thumb-loader-checked: var(
--navds-semantic-color-interaction-primary
);
}
.navds-switch {
position: relative;
min-height: 48px;
width: fit-content;
}
.navds-switch--small {
position: relative;
min-height: 32px;
}
/* Input */
.navds-switch__input {
cursor: pointer;
position: absolute;
z-index: 1;
width: 48px;
height: 48px;
opacity: 0;
top: 0;
}
.navds-switch--small > .navds-switch__input {
height: 32px;
top: 0;
}
/* Label */
.navds-switch__label-wrapper {
cursor: pointer;
color: var(--navds-switch-color-label);
}
.navds-switch__content {
display: flex;
flex-direction: column;
gap: var(--navds-spacing-1);
padding: 0.75rem 0 0.75rem 3.25rem;
}
.navds-switch--small > .navds-switch__label-wrapper > .navds-switch__content {
padding: calc(var(--navds-spacing-2) - 2px) 0
calc(var(--navds-spacing-2) - 2px) 3.25rem;
}
.navds-switch--with-description,
.navds-switch--small
> .navds-switch__label-wrapper
> .navds-switch--with-description {
padding-bottom: 0;
}
.navds-switch__input:hover ~ .navds-switch__label-wrapper {
color: var(--navds-switch-color-label-hover);
}
.navds-switch__input:disabled:hover ~ .navds-switch__label-wrapper {
color: inherit;
}
/* Track */
.navds-switch__track {
width: 44px;
height: 24px;
background-color: var(--navds-switch-color-track-background);
position: absolute;
top: var(--navds-spacing-3);
left: 0;
border-radius: var(--navds-spacing-4);
transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1);
}
.navds-switch--small > .navds-switch__track {
top: var(--navds-spacing-1);
}
.navds-switch__input:checked ~ .navds-switch__track {
background-color: var(--navds-switch-color-track-background-checked);
}
.navds-switch__input:hover:checked ~ .navds-switch__track {
background-color: var(--navds-switch-color-track-background-hover-checked);
}
.navds-switch__input:disabled ~ .navds-switch__track {
background-color: var(--navds-switch-color-track-background);
}
.navds-switch__input:checked:disabled ~ .navds-switch__track {
background-color: var(--navds-switch-color-track-background-checked);
}
.navds-switch__input:focus ~ .navds-switch__track {
box-shadow: 0 0 0 1px var(--navds-switch-color-track-shadow-inner-focus),
var(--navds-shadow-focus);
}
/* Thumb */
.navds-switch__thumb {
background-color: var(--navds-switch-color-thumb);
border-radius: 50%;
width: 20px;
height: 20px;
position: absolute;
transform: translateX(0);
left: 2px;
top: 2px;
transition: transform 250ms cubic-bezier(0.4, 0, 0.2, 1);
display: flex;
align-items: center;
justify-content: center;
}
.navds-switch__input:checked ~ .navds-switch__track > .navds-switch__thumb {
transform: translateX(20px);
}
.navds-switch__input:hover ~ .navds-switch__track > .navds-switch__thumb {
transform: translateX(2px);
}
.navds-switch__input:checked:hover
~ .navds-switch__track
> .navds-switch__thumb {
transform: translateX(18px);
}
.navds-switch__input:disabled:hover
~ .navds-switch__track
> .navds-switch__thumb {
transform: translateX(0);
}
.navds-switch__input:checked:disabled:hover
~ .navds-switch__track
> .navds-switch__thumb {
transform: translateX(20px);
}
/* Loader */
.navds-switch__input:checked
~ .navds-switch__track
> .navds-switch__thumb
.navds-loader__foreground {
stroke: var(--navds-switch-color-thumb-loader-checked);
}
/* Disabled */
.navds-switch__input:disabled {
appearance: none;
}
.navds-switch--disabled {
opacity: 0.3;
}
.navds-switch__input:disabled,
.navds-switch__input:disabled ~ .navds-switch__label-wrapper {
cursor: not-allowed;
}
+41 -18
View File
@@ -1,12 +1,22 @@
:root {
--navds-text-field-color-background: var(--navds-color-white);
--navds-text-field-color-border: var(--navds-color-gray-60);
--navds-text-field-color-border-hover: var(--navds-color-blue-50);
--navds-text-field-color-border-error: var(--navds-color-red-50);
--navds-text-field-color-shadow-error: var(--navds-color-red-50);
--navds-text-field-color-border-disabled: var(--navds-color-gray-40);
--navds-text-field-color-background-disabled: var(--navds-color-gray-10);
--navds-text-field-color-text-disabled: var(--navds-color-darkgray);
--navds-text-field-color-background: var(
--navds-semantic-color-component-background-light
);
--navds-text-field-color-border: var(--navds-semantic-color-border);
--navds-text-field-color-border-hover: var(
--navds-semantic-color-interaction-primary
);
--navds-text-field-color-border-error: var(
--navds-semantic-color-interaction-danger
);
--navds-text-field-color-shadow-error: var(
--navds-semantic-color-interaction-danger
);
--navds-text-field-color-border-disabled: var(--navds-global-color-gray-400);
--navds-text-field-color-background-disabled: var(
--navds-semantic-color-component-background-alternate
);
--navds-text-field-color-text-disabled: var(--navds-semantic-color-text);
}
.navds-text-field__input {
@@ -14,16 +24,20 @@
padding: 0.5rem;
background-color: var(--navds-text-field-color-background);
border-radius: 4px;
border: 1px solid var(--navds-text-field-color-border);
border: 2px solid var(--navds-text-field-color-border);
min-height: 48px;
width: 100%;
}
.navds-form-field--small > .navds-text-field__input {
padding: 0.15rem;
padding: 0 0.15rem;
min-height: 32px;
}
.navds-form-field--small > .navds-text-field__description:not(:empty) {
margin-top: var(--navds-spacing-1);
}
.navds-text-field__input:hover {
border-color: var(--navds-text-field-color-border-hover);
}
@@ -36,20 +50,29 @@
/**
Error handling
*/
.navds-text-field--error
> .navds-text-field__input:not(:hover):not(:focus):not(:disabled) {
box-shadow: 0 0 0 1px var(--navds-text-field-color-shadow-error);
.navds-text-field--error > .navds-text-field__input:not(:hover):not(:disabled) {
border-color: var(--navds-text-field-color-border-error);
}
/* Disabled handling */
.navds-text-field__input:disabled,
.navds-text-field__input[readonly] {
background-color: var(--navds-text-field-color-background-disabled);
border-color: var(--navds-text-field-color-border-disabled);
.navds-text-field__input:disabled {
background-color: var(--navds-text-field-color-background);
border-color: var(--navds-text-field-color-border);
box-shadow: none;
color: var(--navds-text-field-color-text-disabled);
cursor: not-allowed;
opacity: 0.3;
}
.navds-text-field__input[readonly] {
background-color: var(--navds-text-field-color-background);
border-color: var(--navds-text-field-color-border);
box-shadow: none;
cursor: not-allowed;
}
.navds-text-field--disabled > .navds-text-field__label,
.navds-text-field--disabled > .navds-text-field__description {
opacity: 0.3;
}
/**
+37 -16
View File
@@ -1,14 +1,26 @@
:root {
--navds-textarea-color-background: var(--navds-color-white);
--navds-textarea-color-border: var(--navds-color-gray-60);
--navds-textarea-color-border-hover: var(--navds-color-blue-50);
--navds-textarea-color-border-error: var(--navds-color-red-50);
--navds-textarea-color-shadow-error: var(--navds-color-red-50);
--navds-textarea-color-counter-text: var(--navds-color-gray-40);
--navds-textarea-color-counter-text-error: var(--navds-color-red-50);
--navds-textarea-color-text-disabled: var(--navds-color-darkgray);
--navds-textarea-color-border-disabled: var(--navds-color-gray-40);
--navds-textarea-color-background-disabled: var(--navds-color-gray-10);
--navds-textarea-color-background: var(
--navds-semantic-color-component-background-light
);
--navds-textarea-color-border: var(--navds-semantic-color-border);
--navds-textarea-color-border-hover: var(
--navds-semantic-color-interaction-primary
);
--navds-textarea-color-border-error: var(
--navds-semantic-color-interaction-danger
);
--navds-textarea-color-shadow-error: var(
--navds-semantic-color-interaction-danger
);
--navds-textarea-color-counter-text: var(--navds-global-color-gray-400);
--navds-textarea-color-counter-text-error: var(
--navds-semantic-color-interaction-danger
);
--navds-textarea-color-text-disabled: var(--navds-semantic-color-text);
--navds-textarea-color-border-disabled: var(--navds-global-color-gray-400);
--navds-textarea-color-background-disabled: var(
--navds-semantic-color-component-background-alternate
);
}
.navds-textarea__wrapper {
@@ -26,7 +38,7 @@
width: 100%;
transition: height 0.1s ease-out;
display: block;
min-height: 48px;
min-height: 3rem;
}
.navds-textarea--counter {
@@ -44,7 +56,7 @@
.navds-form-field--small .navds-textarea__input {
padding: var(--navds-spacing-1);
min-height: 32px;
min-height: 2rem;
}
.navds-form-field--small .navds-textarea--counter.navds-textarea__input {
@@ -78,11 +90,20 @@
/*
Disabled handling
*/
.navds-textarea__input:disabled,
.navds-textarea--disabled {
opacity: 0.3;
}
.navds-textarea__input:disabled {
background-color: var(--navds-textarea-color-background);
border-color: var(--navds-textarea-color-border);
box-shadow: none;
cursor: not-allowed;
}
.navds-textarea__input[readonly] {
background-color: var(--navds-textarea-color-background-disabled);
border-color: var(--navds-textarea-color-border-disabled);
background-color: var(--navds-textarea-color-background);
border-color: var(--navds-textarea-color-border);
box-shadow: none;
color: var(--navds-textarea-color-text-disabled);
cursor: not-allowed;
}
+2 -2
View File
@@ -5,12 +5,12 @@
.navds-grid {
display: grid;
grid-template-columns: repeat(12, minmax(0, 1fr));
grid-gap: var(--navds-grid-gutter-small);
grid-gap: var(--navds-spacing-4);
}
@media (min-width: 448px) {
.navds-grid {
grid-gap: var(--navds-grid-gutter-medium-and-larger);
grid-gap: var(--navds-spacing-6);
}
}
+7 -3
View File
@@ -1,7 +1,11 @@
:root {
--navds-guide-panel-color-background: var(--navds-color-background);
--navds-guide-panel-color-border: var(--navds-color-blue-40);
--navds-guide-panel-color-illustration-background: var(--navds-color-blue-20);
--navds-guide-panel-color-background: var(
--navds-semantic-color-component-background-light
);
--navds-guide-panel-color-border: var(--navds-global-color-blue-400);
--navds-guide-panel-color-illustration-background: var(
--navds-global-color-blue-200
);
}
/**
+20 -8
View File
@@ -1,13 +1,25 @@
:root {
--navds-help-text-color-button-background: transparent;
--navds-help-text-color-icon: var(--navds-color-blue-50);
--navds-help-text-color-icon-hover: var(--navds-color-white);
--navds-help-text-color-icon-background-hover: var(--navds-color-blue-50);
--navds-help-text-color-icon-shadow-hover: var(--navds-color-blue-50);
--navds-help-text-color-icon-focus: var(--navds-color-white);
--navds-help-text-color-icon-background-focus: var(--navds-color-blue-50);
--navds-help-text-color-icon-shadow-focus: var(--navds-color-blue-80);
--navds-help-text-color-popover-background: var(--navds-color-lightblue-10);
--navds-help-text-color-icon: var(--navds-semantic-color-interaction-primary);
--navds-help-text-color-icon-hover: var(
--navds-semantic-color-component-background-light
);
--navds-help-text-color-icon-background-hover: var(
--navds-semantic-color-interaction-primary
);
--navds-help-text-color-icon-shadow-hover: var(
--navds-semantic-color-interaction-primary
);
--navds-help-text-color-icon-focus: var(
--navds-semantic-color-component-background-light
);
--navds-help-text-color-icon-background-focus: var(
--navds-semantic-color-interaction-primary
);
--navds-help-text-color-icon-shadow-focus: var(--navds-semantic-color-focus);
--navds-help-text-color-popover-background: var(
--navds-semantic-color-feedback-info-background
);
}
.navds-help-text__button {
+1 -2
View File
@@ -7,8 +7,6 @@
@import "alert.css";
@import "button.css";
@import "content-container.css";
@import "copy-to-clipboard.css";
@import "internal-header.css";
@import "guide-panel.css";
@import "form/index.css";
@import "help-text.css";
@@ -20,6 +18,7 @@
@import "panel.css";
@import "link-panel.css";
@import "speech-bubble.css";
@import "table.css";
/* Navno spesific packages */
@import "page-header.css";
-66
View File
@@ -1,66 +0,0 @@
:root {
--navds-internal-header-color-background: var(--navds-color-darkgray);
--navds-internal-header-color-border: var(--navds-color-gray-40);
--navds-internal-header-color-text: var(--navds-color-text-inverse);
}
/**************************
* .navds-header *
**************************/
.navds-interal-header {
display: flex;
align-items: center;
background: var(--navds-internal-header-color-background);
color: var(--navds-internal-header-color-text);
max-width: 100vw;
min-height: 50px;
}
.navds-interal-header__column {
display: flex;
align-items: center;
}
/**************************
* .navds-interal-header__title *
**************************/
.navds-interal-header__title {
padding: 0 var(--navds-spacing-6);
border-right: 1px solid var(--navds-internal-header-color-border);
display: flex;
align-self: stretch;
align-items: center;
text-decoration: none;
margin: 0;
color: var(--navds-internal-header-color-text);
}
.navds-interal-header__title > span > a {
text-decoration: none;
color: inherit;
}
.navds-interal-header__title > span > a:focus {
box-shadow: var(--navds-shadow-focus-on-dark);
outline: none;
}
/**************************
* .navds-interal-header__user *
**************************/
.navds-interal-header__user {
color: var(--navds-internal-header-color-text);
padding: 0 var(--navds-spacing-6);
margin-left: auto;
border-left: 1px solid var(--navds-internal-header-color-border);
display: flex;
align-self: stretch;
align-items: center;
}
.navds-interal-header__name.navds-body-short {
margin-right: var(--navds-spacing-4);
}
+6 -4
View File
@@ -1,7 +1,9 @@
:root {
--navds-link-panel-color-text: var(--navds-color-gray-90);
--navds-link-panel-color-border-hover: var(--navds-color-blue-50);
--navds-link-panel-color-title-hover: var(--navds-color-text-link);
--navds-link-panel-color-text: var(--navds-semantic-color-text);
--navds-link-panel-color-border-hover: var(
--navds-semantic-color-interaction-primary
);
--navds-link-panel-color-title-hover: var(--navds-semantic-color-link);
}
.navds-link-panel {
@@ -19,7 +21,7 @@
}
.navds-link-panel:hover {
box-shadow: var(--navds-shadow-hover);
box-shadow: var(--navds-shadow-card);
border-color: var(--navds-link-panel-color-border-hover);
}
+11 -11
View File
@@ -1,13 +1,13 @@
:root {
--navds-link-color-text: var(--navds-color-text-link);
--navds-link-color-text-focus: var(--navds-color-text-inverse);
--navds-link-color-text-active: var(--navds-color-text-inverse);
--navds-link-color-background-focus: var(--navds-text-focus);
--navds-link-color-background-active: var(--navds-text-focus);
--navds-link-color-icon: var(--navds-color-text-link);
--navds-link-color-icon-focus: var(--navds-color-text-inverse);
--navds-link-color-on-info-background: var(--navds-color-text-primary);
--navds-link-color-on-error-background: var(--navds-color-text-primary);
--navds-link-color-text: var(--navds-semantic-color-link);
--navds-link-color-text-focus: var(--navds-semantic-color-text-inverted);
--navds-link-color-text-active: var(--navds-semantic-color-text-inverted);
--navds-link-color-background-focus: var(--navds-semantic-color-focus);
--navds-link-color-background-active: var(--navds-semantic-color-focus);
--navds-link-color-icon: var(--navds-semantic-color-link);
--navds-link-color-icon-focus: var(--navds-semantic-color-text-inverted);
--navds-link-color-on-info-background: var(--navds-semantic-color-text);
--navds-link-color-on-error-background: var(--navds-semantic-color-text);
}
.navds-link {
@@ -36,7 +36,7 @@
color: var(--navds-link-color-text-focus);
text-decoration: none;
background-color: var(--navds-link-color-background-focus);
box-shadow: var(--navds-text-shadow);
box-shadow: 0 0 0 2px var(--navds-semantic-color-focus);
}
.navds-link:active {
@@ -44,7 +44,7 @@
color: var(--navds-link-color-text-active);
text-decoration: none;
background-color: var(--navds-link-color-background-active);
box-shadow: var(--navds-text-shadow);
box-shadow: 0 0 0 2px var(--navds-semantic-color-focus);
}
.navds-link svg {
+11 -5
View File
@@ -1,9 +1,15 @@
:root {
--navds-loader-color-foreground: var(--navds-color-gray-40);
--navds-loader-color-background: var(--navds-color-gray-10);
--navds-loader-color-neutral-foreground: var(--navds-color-gray-40);
--navds-loader-color-interaction-foreground: var(--navds-color-blue-50);
--navds-loader-color-inverted-foreground: var(--navds-color-white);
--navds-loader-color-foreground: var(--navds-global-color-gray-400);
--navds-loader-color-background: var(
--navds-semantic-color-component-background-alternate
);
--navds-loader-color-neutral-foreground: var(--navds-global-color-gray-400);
--navds-loader-color-interaction-foreground: var(
--navds-semantic-color-interaction-primary
);
--navds-loader-color-inverted-foreground: var(
--navds-semantic-color-component-background-light
);
--navds-loader-color-inverted-background: rgba(255, 255, 255, 0.3);
--navds-loader-color-transparent-background: transparent;
--navds-loader-color-on-button-background: rgba(255, 255, 255, 0.3);
+4 -2
View File
@@ -1,6 +1,8 @@
:root {
--navds-modal-color-background: var(--navds-color-background);
--navds-modal-color-overlay: var(--navds-color-modal-overlay);
--navds-modal-color-background: var(
--navds-semantic-color-component-background-light
);
--navds-modal-color-overlay: rgba(38, 38, 38, 0.7);
}
.ReactModal__Body--open {
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@navikt/ds-css",
"version": "0.8.4",
"version": "0.12.6",
"private": false,
"description": "Css for NAV Designsystem components",
"author": "NAV Designsystem team",
@@ -21,7 +21,7 @@
"watch": "postcss --watch --use postcss-import -o dist/index.css index.css"
},
"devDependencies": {
"@navikt/ds-tokens": "^0.5.2",
"@navikt/ds-tokens": "^0.7.0",
"normalize.css": "^8.0.1",
"postcss": "^8.3.6",
"postcss-cli": "^8.3.1",
+11 -5
View File
@@ -1,8 +1,14 @@
:root {
--navds-page-header-color-background: var(--navds-color-background);
--navds-page-header-color-shadow-situation: var(--navds-color-orange-40);
--navds-page-header-color-shadow-product: var(--navds-color-green-40);
--navds-page-header-color-shadow-guide: var(--navds-color-deepblue-40);
--navds-page-header-color-background: var(
--navds-semantic-color-component-background-light
);
--navds-page-header-color-shadow-situation: var(
--navds-global-color-orange-400
);
--navds-page-header-color-shadow-product: var(--navds-global-color-green-400);
--navds-page-header-color-shadow-guide: var(
--navds-global-color-deepblue-400
);
}
.navds-page-header {
@@ -65,6 +71,6 @@
height: 3rem;
}
.navds-page-header__title {
font-size: var(--navds-font-size-title-xl);
font-size: var(--navds-font-size-heading-xlarge);
}
}
+5 -3
View File
@@ -1,12 +1,14 @@
:root {
--navds-panel-color-background: var(--navds-color-white);
--navds-panel-color-border: var(--navds-color-border);
--navds-panel-color-background: var(
--navds-semantic-color-component-background-light
);
--navds-panel-color-border: var(--navds-semantic-color-border-muted);
}
.navds-panel {
background-color: var(--navds-panel-color-background);
padding: var(--navds-spacing-4);
border-radius: var(--navds-border-radius);
border-radius: 4px;
border: 1px solid transparent;
}
+5 -4
View File
@@ -1,13 +1,14 @@
:root {
--navds-popover-color-background: var(--navds-color-background);
--navds-popover-color-border: var(--navds-color-gray-40);
--navds-popover-color-shadow: var(--navds-color-gray-20);
--navds-popover-color-background: var(
--navds-semantic-color-component-background-light
);
--navds-popover-color-border: var(--navds-semantic-color-border-muted);
}
.navds-popover {
z-index: var(--navds-z-index-popover);
background-color: var(--navds-popover-color-background);
box-shadow: 0 2px 4px 0 var(--navds-popover-color-shadow);
box-shadow: var(--navds-shadow-popover);
border: 1px solid;
border-color: var(--navds-popover-color-border);
border-radius: 4px;
+9 -6
View File
@@ -1,11 +1,14 @@
:root {
--navds-speechbubble-color-background: var(--navds-color-gray-10);
--navds-speechbubble-color-shadow: var(--navds-color-gray-20);
--navds-speechbubble-color-illustration: var(--navds-color-darkgray);
--navds-speechbubble-color-background: var(
--navds-semantic-color-component-background-alternate
);
--navds-speechbubble-color-illustration: var(--navds-semantic-color-text);
--navds-speechbubble-color-illustration-background: var(
--navds-color-gray-20
--navds-semantic-color-canvas-background
);
--navds-speechbubble-color-detail-text: var(
--navds-semantic-color-text-muted
);
--navds-speechbubble-color-detail-text: var(--navds-color-gray-60);
}
.navds-speechbubble {
@@ -52,7 +55,7 @@
.navds-speechbubble__bubble {
padding: 1rem;
box-shadow: 0 2px 4px 0 var(--navds-speechbubble-color-shadow);
box-shadow: var(--navds-shadow-popover);
width: fit-content;
max-width: 37.5rem;
background-color: var(--navds-speechbubble-color-background);
+82
View File
@@ -0,0 +1,82 @@
:root {
--navds-table-cell-color-border: var(--navds-semantic-color-border-muted);
--navds-table-row-color-background-hover: var(
--navds-semantic-color-canvas-background
);
--navds-table-row-color-background-selected: var(
--navds-semantic-color-interaction-primary-hover-subtle
);
--navds-table-row-color-background-selected-hover: var(
--navds-global-color-blue-100
);
--navds-table-row-color-background-zebra: var(
--navds-semantic-color-component-background-alternate
);
--navds-table-cell-color-border-hover: var(--navds-semantic-color-border);
}
.navds-table {
border-collapse: collapse;
width: 100%;
display: table;
}
.navds-table__header {
display: table-header-group;
}
.navds-table__body {
display: table-row-group;
}
.navds-table__row {
display: table-row;
}
.navds-table__body .navds-table__row:hover {
background-color: var(--navds-table-row-color-background-hover);
}
.navds-table__row--selected {
background-color: var(--navds-table-row-color-background-selected);
}
.navds-table__body .navds-table__row--selected:hover {
background-color: var(--navds-table-row-color-background-selected-hover);
}
.navds-table--zebra-stripes
.navds-table__body
.navds-table__row:nth-of-type(odd):not(:hover):not(.navds-table__row--selected) {
background-color: var(--navds-table-row-color-background-zebra);
}
.navds-table__header-cell,
.navds-table__data-cell {
display: table-cell;
padding: var(--navds-spacing-4);
border-bottom: 1px solid var(--navds-table-cell-color-border);
text-align: left;
}
.navds-table__body .navds-table__row:hover .navds-table__header-cell,
.navds-table__body .navds-table__row:hover .navds-table__data-cell {
border-color: var(--navds-table-cell-color-border-hover);
}
.navds-table--small .navds-table__header-cell,
.navds-table--small .navds-table__data-cell {
padding: var(--navds-spacing-2);
}
.navds-table .navds-checkbox .navds-checkbox__input {
top: -12px;
}
.navds-table .navds-checkbox--small .navds-checkbox__input {
top: -6px;
}
.navds-table .navds-checkbox .navds-checkbox__label {
padding: 0;
}
+24 -10
View File
@@ -1,18 +1,32 @@
:root {
--navds-tag-color-border: var(--navds-color-gray-40);
--navds-tag-color-background: var(--navds-color-gray-10);
--navds-tag-color-info-background: var(--navds-color-tag-info-background);
--navds-tag-color-info-border: var(--navds-color-tag-info-border);
--navds-tag-color-border: var(--navds-semantic-color-border-muted);
--navds-tag-color-background: var(
--navds-semantic-color-component-background-alternate
);
--navds-tag-color-info-background: var(
--navds-semantic-color-feedback-info-background
);
--navds-tag-color-info-border: var(
--navds-semantic-color-feedback-info-border
);
--navds-tag-color-warning-background: var(
--navds-color-tag-warning-background
--navds-semantic-color-feedback-warning-background
);
--navds-tag-color-warning-border: var(
--navds-semantic-color-feedback-warning-border
);
--navds-tag-color-warning-border: var(--navds-color-tag-warning-border);
--navds-tag-color-success-background: var(
--navds-color-tag-success-background
--navds-semantic-color-feedback-success-background
);
--navds-tag-color-success-border: var(
--navds-semantic-color-feedback-success-border
);
--navds-tag-color-error-background: var(
--navds-semantic-color-feedback-danger-background
);
--navds-tag-color-error-border: var(
--navds-semantic-color-feedback-danger-border
);
--navds-tag-color-success-border: var(--navds-color-tag-success-border);
--navds-tag-color-error-background: var(--navds-color-tag-error-background);
--navds-tag-color-error-border: var(--navds-color-tag-error-border);
}
.navds-tag {
+28 -28
View File
@@ -5,9 +5,9 @@
}
.navds-heading--2xlarge {
font-size: var(--navds-font-size-heading-2xl);
font-size: var(--navds-font-size-heading-2xlarge);
letter-spacing: -0.01em;
line-height: var(--navds-font-line-height-heading-2xl);
line-height: var(--navds-font-line-height-heading-2xlarge);
}
.navds-heading--2xlarge.navds-typo--spacing {
@@ -15,9 +15,9 @@
}
.navds-heading--xlarge {
font-size: var(--navds-font-size-heading-xl);
font-size: var(--navds-font-size-heading-xlarge);
letter-spacing: -0.008em;
line-height: var(--navds-font-line-height-heading-xl);
line-height: var(--navds-font-line-height-heading-xlarge);
}
.navds-heading--xlarge.navds-typo--spacing {
@@ -25,9 +25,9 @@
}
.navds-heading--large {
font-size: var(--navds-font-size-heading-l);
font-size: var(--navds-font-size-heading-large);
letter-spacing: -0.004em;
line-height: var(--navds-font-line-height-heading-l);
line-height: var(--navds-font-line-height-heading-large);
}
.navds-heading--large.navds-typo--spacing {
@@ -35,9 +35,9 @@
}
.navds-heading--medium {
font-size: var(--navds-font-size-heading-m);
font-size: var(--navds-font-size-heading-medium);
letter-spacing: -0.002em;
line-height: var(--navds-font-line-height-heading-m);
line-height: var(--navds-font-line-height-heading-medium);
}
.navds-heading--medium.navds-typo--spacing {
@@ -45,9 +45,9 @@
}
.navds-heading--small {
font-size: var(--navds-font-size-heading-s);
font-size: var(--navds-font-size-heading-small);
letter-spacing: -0.001em;
line-height: var(--navds-font-line-height-heading-s);
line-height: var(--navds-font-line-height-heading-small);
}
.navds-heading--small.navds-typo--spacing {
@@ -55,9 +55,9 @@
}
.navds-heading--xsmall {
font-size: var(--navds-font-size-heading-xs);
font-size: var(--navds-font-size-heading-xsmall);
letter-spacing: -0.001em;
line-height: var(--navds-font-line-height-heading-xs);
line-height: var(--navds-font-line-height-heading-xsmall);
}
.navds-heading--xsmall.navds-typo--spacing {
@@ -66,10 +66,10 @@
/* Ingress */
.navds-ingress {
font-size: var(--navds-font-size-xl);
font-size: var(--navds-font-size-xlarge);
font-weight: var(--navds-font-weight-regular);
letter-spacing: -0.001em;
line-height: var(--navds-font-line-height-xl);
line-height: var(--navds-font-line-height-xlarge);
margin: 0;
}
@@ -79,10 +79,10 @@
/* Body */
.navds-body-long {
font-size: var(--navds-font-size-l);
font-size: var(--navds-font-size-large);
font-weight: var(--navds-font-weight-regular);
letter-spacing: 0;
line-height: var(--navds-font-line-height-xl);
line-height: var(--navds-font-line-height-xlarge);
margin: 0;
}
@@ -91,9 +91,9 @@
}
.navds-body-long--small {
font-size: var(--navds-font-size-m);
font-size: var(--navds-font-size-medium);
letter-spacing: 0.002em;
line-height: var(--navds-font-line-height-l);
line-height: var(--navds-font-line-height-large);
}
.navds-body-long--small.navds-typo--spacing {
@@ -101,10 +101,10 @@
}
.navds-body-short {
font-size: var(--navds-font-size-l);
font-size: var(--navds-font-size-large);
font-weight: var(--navds-font-weight-regular);
letter-spacing: 0;
line-height: var(--navds-font-line-height-l);
line-height: var(--navds-font-line-height-large);
margin: 0;
}
@@ -113,9 +113,9 @@
}
.navds-body-short--small {
font-size: var(--navds-font-size-m);
font-size: var(--navds-font-size-medium);
letter-spacing: 0.002em;
line-height: var(--navds-font-line-height-m);
line-height: var(--navds-font-line-height-medium);
}
.navds-body-short--small.navds-typo--spacing {
@@ -124,10 +124,10 @@
/* Label */
.navds-label {
font-size: var(--navds-font-size-l);
font-size: var(--navds-font-size-large);
font-weight: var(--navds-font-weight-bold);
letter-spacing: 0;
line-height: var(--navds-font-line-height-l);
line-height: var(--navds-font-line-height-large);
margin: 0;
}
@@ -136,9 +136,9 @@
}
.navds-label--small {
font-size: var(--navds-font-size-m);
font-size: var(--navds-font-size-medium);
letter-spacing: 0.002em;
line-height: var(--navds-font-line-height-m);
line-height: var(--navds-font-line-height-medium);
}
.navds-label--small.navds-typo--spacing {
@@ -147,10 +147,10 @@
/* Small text */
.navds-detail {
font-size: var(--navds-font-size-s);
font-size: var(--navds-font-size-small);
font-weight: var(--navds-font-weight-bold);
letter-spacing: 0.004em;
line-height: var(--navds-font-line-height-m);
line-height: var(--navds-font-line-height-medium);
margin: 0;
}
+16
View File
@@ -0,0 +1,16 @@
const template = require("./template");
module.exports = {
typescript: true,
ref: true,
icon: true,
titleProp: true,
svgProps: {
focusable: false,
role: "img",
},
replaceAttrValues: {
"#262626": "currentColor",
},
template,
};
+12 -2
View File
@@ -1,6 +1,6 @@
# @navikt/ds-icons
Denne pakken leverer [NAV sine ikoner](https://design.nav.no/resources/icons) i en pakke med React-komponenter og SVG er.
Leverer [NAVs ikoner](https://design.nav.no/resources/icons) i React og SVG.
## Installering
@@ -12,7 +12,17 @@ yarn add @navikt/ds-icons
npm install @navikt/ds-icons
```
## Bruk
```jsx
/* ESM (anbefalt for tree-shaking)*/
import { Down } from "@navikt/ds-icons";
/* CJS */
import { Down } from "@navikt/cjs/ds-icons";
<Down aria-label="Åpne meny" />;
```
## Dokumentasjon
- [Ikonsøk](https://design.nav.no/resources/icons)
- [Installering](https://design.nav.no/resources/icons/install)
-49
View File
@@ -1,49 +0,0 @@
// https://levelup.gitconnected.com/learn-svg-to-react-using-figma-api-be0a5f9c0ca
// used for reference/implementation
import Axios from "axios";
const { create, get } = Axios;
// Requires user to add a personalized figma token in .env
const headers = {
"X-FIGMA-TOKEN": process.env.FIGMA_TOKEN,
};
/**
* Api connection for icon components
* https://www.figma.com/file/UmEVH3pZ71uJPsSz9ilP3Y/NAV-ikoner-2.1-Figma-i-test?node-id=0%3A1
*/
const instanceFiles = create({
baseURL: `https://api.figma.com/v1/files/${process.env.FILE_KEY}/components`,
headers,
});
/**
* api endpoint for images
*/
const instanceImages = create({
baseURL: `https://api.figma.com/v1/images/${process.env.FILE_KEY}`,
headers,
});
/**
* get Figma node components children
*/
export const getNodeChildren = async () => {
const { data } = await instanceFiles.get();
return data.meta.components;
};
/**
* get svg image resource urls
*/
export const getSvgImageUrls = async (nodeIds) => {
const {
data: { images },
} = await instanceImages.get(`/?ids=${nodeIds}&format=svg`);
return Object.values(images);
};
/**
* Gets raw svg data from url
*/
export const getIconContent = async (url) => get(url);
-105
View File
@@ -1,105 +0,0 @@
import { getNodeChildren, getSvgImageUrls, getIconContent } from "./api";
import { existsSync, unlinkSync, writeFileSync, mkdirSync } from "fs";
import { resolve } from "path";
import pLimit from "p-limit";
import rimraf from "rimraf";
import startCase from "lodash.startcase";
const generateMetadata = (iconNodesArr) => {
return iconNodesArr
.map(({ name, description, created_at, updated_at, containing_frame }) => {
return {
name: startCase(name).replace(/\s/g, ""),
description,
created_at,
updated_at,
//strip emojis
pageName: containing_frame.pageName.replace(
/([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g,
""
),
visible: true,
};
})
.sort((a, b) => a.name.localeCompare(b.name));
};
const main = async () => {
const iconFolder = "./svg";
const metadataFileName = "./figma-api/metadata.json";
const misses = [];
// Limiting to ~20 concurrent downloads seems to lead to fewer erros
const limit = pLimit(20);
const iconNodesArr = await getNodeChildren().catch((e) => {
throw e;
});
if (existsSync(metadataFileName)) {
unlinkSync(metadataFileName);
}
writeFileSync(
metadataFileName,
JSON.stringify(generateMetadata(iconNodesArr), null, 4),
{
encoding: "utf8",
}
);
const iconUrls = await getSvgImageUrls(
iconNodesArr.map((node) => node.node_id).join(",")
);
if (existsSync(iconFolder)) {
rimraf.sync(iconFolder);
}
mkdirSync(iconFolder);
console.log("Total icons: " + iconNodesArr.length);
await Promise.all(
iconUrls.map((url, x) =>
limit(() =>
getIconContent(url)
.then(({ data }) => {
writeFileSync(
resolve(
iconFolder,
`${startCase(iconNodesArr[x].name).replace(/\s/g, "")}.svg`
),
data,
{
encoding: "utf8",
}
);
})
.catch((e) => {
misses.push({
name: iconNodesArr[x].name,
error: e.message,
});
})
)
)
);
if (misses.length > 0) {
writeFileSync(
resolve("./", `misses.txt`),
JSON.stringify(misses, null, 4),
{
encoding: "utf8",
}
);
console.log(`\nCould not download ${misses.length} icons\n`);
} else {
console.log("\nDownloaded all icons from Figma successfully!\n");
}
};
try {
main();
} catch (e) {
console.error(e);
}
+48
View File
@@ -0,0 +1,48 @@
import Axios from "axios";
const { create, get } = Axios;
const FILE_KEY = "UmEVH3pZ71uJPsSz9ilP3Y";
const FigmaAxion = (token?: string) =>
create({
headers: {
"X-FIGMA-TOKEN": token,
},
});
/**
* Published Figma-components
* https://www.figma.com/file/UmEVH3pZ71uJPsSz9ilP3Y/%F0%9F%92%A0NAV-ikoner-2.5-Figma
*/
export const getPublishedIcons = async () => {
const { data } = await FigmaAxion(process.env.FIGMA_TOKEN)
.get(`https://api.figma.com/v1/files/${FILE_KEY}/components`)
.catch((e) => {
console.log("Failed getPublishedIcons ");
throw e;
});
return data?.meta?.components;
};
/**
* Downloadable link to each icon in SVG-format
*/
export const getIconsDownloadableUrl = async (nodeIds: string) => {
const {
data: { images },
} = await FigmaAxion(process.env.FIGMA_TOKEN)
.get(
`https://api.figma.com/v1/images/${FILE_KEY}/?ids=${nodeIds}&format=svg`
)
.catch((e) => {
console.log("Failed getIconsDownloadableUrl ");
throw e;
});
return Object.values(images) as string[];
};
/**
* Download icon @url
*/
export const getIconContent = async (url: string) => get(url);
+85
View File
@@ -0,0 +1,85 @@
import {
getPublishedIcons,
getIconsDownloadableUrl,
getIconContent,
} from "./api";
import { existsSync, writeFileSync, mkdirSync } from "fs";
import { resolve } from "path";
import pLimit from "p-limit";
import rimraf from "rimraf";
import startCase from "lodash.startcase";
import { writeMeta } from "./write-meta";
import dotenv from "dotenv";
dotenv.config();
export type ComponentT = {
key: string;
file_key: string;
node_id: string;
thumbnail_url: string;
name: string;
description: string;
updated_at: string;
created_at: string;
user: any;
containing_frame: any;
};
const main = async () => {
if (!process.env.FIGMA_TOKEN) {
throw new Error("FIGMA_TOKEN not set in .env");
}
const iconFolder = "./svg";
// Limiting to ~20 concurrent downloads seems to lead to less errors
const limit = pLimit(20);
const publishedIconNodes: ComponentT[] = await getPublishedIcons();
writeMeta(publishedIconNodes);
/* Get all urls in one fetch rather than 300+ */
const iconUrls: string[] = await getIconsDownloadableUrl(
publishedIconNodes.map((node) => node.node_id).join(",")
);
if (existsSync(iconFolder)) {
rimraf.sync(iconFolder);
}
mkdirSync(iconFolder);
console.log("Total icons: " + publishedIconNodes.length);
await Promise.all(
iconUrls.map((url, x) =>
limit(() =>
getIconContent(url)
.then(({ data }) => {
writeFileSync(
resolve(
iconFolder,
`${startCase(publishedIconNodes[x].name).replace(
/\s/g,
""
)}.svg`
),
data,
{
encoding: "utf8",
}
);
})
.catch((e) => {
throw e;
})
)
)
);
console.log("\nDownloaded all icons from Figma!\n");
};
try {
main();
} catch (e) {
throw e;
}
+35
View File
@@ -0,0 +1,35 @@
import { existsSync, unlinkSync, writeFileSync } from "fs";
import startCase from "lodash.startcase";
import { ComponentT } from ".";
const generateMetadata = (publishedIconNodes: ComponentT[]) => {
return publishedIconNodes
.map(({ name, description, created_at, containing_frame }) => {
return {
name: startCase(name).replace(/\s/g, ""),
description,
created_at,
// strip emojis
pageName: containing_frame.pageName.replace(
/([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g,
""
),
};
})
.sort((a, b) => a.name.localeCompare(b.name));
};
export const writeMeta = (publishedIconNodes: ComponentT[]) => {
const metadataFileName = "./meta.json";
if (existsSync(metadataFileName)) {
unlinkSync(metadataFileName);
}
writeFileSync(
metadataFileName,
JSON.stringify(generateMetadata(publishedIconNodes)),
{
encoding: "utf8",
}
);
};
File diff suppressed because it is too large. Load diff
+17 -9
View File
@@ -1,6 +1,6 @@
{
"name": "@navikt/ds-icons",
"version": "0.5.4",
"version": "0.7.0",
"private": false,
"description": "NAVs egne ikoner i SVG og React format",
"repository": {
@@ -22,22 +22,29 @@
"/cjs",
"/esm",
"/src",
"/svg"
"/svg",
"/meta.json"
],
"scripts": {
"create-package-json-pointers-to-esm": "node ../../../utilities/scripts/createPackageJsonsWithESMPointers.js",
"dl-icons": "FILE_KEY=UmEVH3pZ71uJPsSz9ilP3Y node --experimental-modules --es-module-specifier-resolution=node -r dotenv/config figma-api/index.mjs dotenv_config_path=figma-api/.env",
"create-icons": "svgr --silent --typescript --ref --icon --title-prop --replace-attr-values \"#262626=currentColor\" -d src svg",
"convert-icons": "node figma-api/pngConverter.mjs",
"clean": "rimraf src png NAV-ikonpakke-png.zip NAV-ikonpakke-svg.zip",
"zip-icons": "node figma-api/zipIcons.mjs",
"build": "yarn clean && yarn create-icons && tsc && tsc -p tsconfig-esm.json && yarn create-package-json-pointers-to-esm && yarn run convert-icons && yarn zip-icons"
"create-icons": "svgr --out-dir src svg",
"convert-icons": "node scripts/pngConverter.mjs",
"clean": "rimraf src cjs esm png NAV-ikonpakke-png.zip NAV-ikonpakke-svg.zip",
"zip-icons": "node scripts/zipIcons.mjs",
"build": "yarn clean && yarn create-icons && tsc && tsc -p tsconfig.esm.json && yarn create-package-json-pointers-to-esm && yarn run convert-icons && yarn zip-icons",
"update": "ts-node figma/index.ts dotenv/config"
},
"dependencies": {
"uuid": "^8.3.2"
},
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0"
"@types/react": "^17.0.30",
"react": "^17.0.0"
},
"devDependencies": {
"@svgr/cli": "^5.5.0",
"@types/lodash.startcase": "^4.4.6",
"@types/uuid": "^8.3.1",
"copyfiles": "^2.4.1",
"dotenv": "^10.0.0",
"lodash.kebabcase": "^4.1.1",
@@ -45,6 +52,7 @@
"react": "^16.8.0 || ^17.0.0",
"rimraf": "3.0.2",
"sharp": "0.29.1",
"ts-node": "^10.4.0",
"zip-dir": "^2.0.0"
}
}
+1 -3
View File
@@ -16,9 +16,7 @@ yarn add @navikt/ds-icons
Import { Expand } from `@navikt/ds-icons`;
<Expand
aria-label="Åpne meny"
role="img"
focusable="false"
title="Åpne meny"
/>
```
File renamed without changes.
File renamed without changes.
+1 -1
View File
@@ -1,3 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M19.4858 7.11888C20.7324 5.94771 20.7324 4.04887 19.4858 2.87769C18.2838 1.74835 16.3616 1.70802 15.1081 2.75669L14.9716 2.87769L3.6862 13.4807L3.52649 13.6372C1.61004 15.5983 1.66328 18.6487 3.6862 20.5493C4.61095 21.4181 5.79143 21.9002 7 21.9956V22H24V24L7 24C5.24586 23.9013 3.52179 23.2223 2.18147 21.963C-0.666561 19.2872 -0.725895 14.9835 2.00347 12.2399L2.18147 12.0669L13.4669 1.46396C15.5445 -0.487988 18.913 -0.487988 20.9905 1.46396C23.0135 3.36455 23.0667 6.41493 21.1502 8.37603L20.9905 8.53261L9.7051 19.1356L9.56865 19.2566C8.31517 20.3053 6.39296 20.2649 5.19092 19.1356C3.98889 18.0062 3.94596 16.2003 5.06213 15.0226L5.19092 14.8944L16.4764 4.29142L17.9811 5.70515L6.69565 16.3081L6.61297 16.3953C6.28225 16.7877 6.30981 17.3593 6.69565 17.7219C7.08149 18.0844 7.68993 18.1103 8.10757 17.7995L8.20038 17.7219L19.4858 7.11888Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M19.4858 7.11888C20.7324 5.94771 20.7324 4.04887 19.4858 2.87769C18.2838 1.74835 16.3616 1.70802 15.1081 2.75669L14.9716 2.87769L3.6862 13.4807L3.52649 13.6372C1.61004 15.5983 1.66328 18.6487 3.6862 20.5493C4.61095 21.4181 5.79143 21.9002 7 21.9956V22H24V24L7 24C5.24586 23.9013 3.52179 23.2223 2.18147 21.963C-0.666561 19.2872 -0.725895 14.9835 2.00347 12.2399L2.18147 12.0669L13.4669 1.46396C15.5445 -0.487988 18.913 -0.487988 20.9905 1.46396C23.0135 3.36455 23.0667 6.41493 21.1503 8.37603L20.9905 8.53261L9.7051 19.1356L9.56865 19.2566C8.31517 20.3053 6.39296 20.2649 5.19092 19.1356C3.98889 18.0062 3.94596 16.2003 5.06214 15.0226L5.19092 14.8944L16.4764 4.29142L17.9811 5.70515L6.69565 16.3081L6.61297 16.3953C6.28225 16.7877 6.30981 17.3593 6.69565 17.7219C7.08149 18.0844 7.68993 18.1103 8.10757 17.7995L8.20038 17.7219L19.4858 7.11888Z" fill="#262626"/>
</svg>

Before

Width:  |  Height:  |  Size: 1015 B

After

Width:  |  Height:  |  Size: 1015 B

@@ -1,3 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M12 3C12 4.65685 10.6569 6 9 6C7.34315 6 6 4.65685 6 3C6 1.34315 7.34315 0 9 0C10.6569 0 12 1.34315 12 3ZM23 14.5C23 15.3284 22.3284 16 21.5 16C20.6716 16 20 15.3284 20 14.5C20 13.6716 20.6716 13 21.5 13C22.3284 13 23 13.6716 23 14.5ZM4.68636 6C3.98108 6 3.36366 6.47353 3.18079 7.15469L0.000732422 19H1H3.25773V24H5.25773V19H7.25773V24H9.25773V19H11H12.0018L10.1893 11H13C13.5523 11 14 10.5523 14 10C14 9.44771 13.5523 9 13 9H9.5682C8.65406 7.19312 6.78502 6 4.68636 6ZM20 12C20 11.4477 19.5523 11 19 11C18.4477 11 18 11.4477 18 12V14H16.618L16.1708 13.1056C15.832 12.428 15.1395 12 14.382 12H14C13.4477 12 13 12.4477 13 13C13 13.5523 13.4477 14 14 14H14.382L14.8292 14.8944C15.168 15.572 15.8605 16 16.618 16H18C19.1046 16 20 15.1046 20 14V12ZM13 18C13 17.4477 13.4477 17 14 17H22C22.5523 17 23 17.4477 23 18C23 18.5523 22.5523 19 22 19H14C13.4477 19 13 18.5523 13 18Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M13 3C13 4.65685 11.6569 6 10 6C8.34315 6 7 4.65685 7 3C7 1.34315 8.34315 0 10 0C11.6569 0 13 1.34315 13 3ZM24 14.5C24 15.3284 23.3284 16 22.5 16C21.6716 16 21 15.3284 21 14.5C21 13.6716 21.6716 13 22.5 13C23.3284 13 24 13.6716 24 14.5ZM5.68636 6C4.98108 6 4.36366 6.47353 4.18079 7.15469L1.00073 19H2H4.25773V24H6.25773V19H8.25773V24H10.2577V19H12H13.0018L11.1893 11H14C14.5523 11 15 10.5523 15 10C15 9.44771 14.5523 9 14 9H10.5682C9.65406 7.19312 7.78502 6 5.68636 6ZM21 12C21 11.4477 20.5523 11 20 11C19.4477 11 19 11.4477 19 12V14H17.618L17.1708 13.1056C16.832 12.428 16.1395 12 15.382 12H15C14.4477 12 14 12.4477 14 13C14 13.5523 14.4477 14 15 14H15.382L15.8292 14.8944C16.168 15.572 16.8605 16 17.618 16H19C20.1046 16 21 15.1046 21 14V12ZM14 18C14 17.4477 14.4477 17 15 17H23C23.5523 17 24 17.4477 24 18C24 18.5523 23.5523 19 23 19H15C14.4477 19 14 18.5523 14 18Z" fill="#262626"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+2 -2
View File
@@ -1,7 +1,7 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<mask id="path-1-inside-1" fill="white">
<mask id="path-1-inside-1_1873:555" fill="white">
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 1C9 0.447715 9.44772 0 10 0H14C14.5523 0 15 0.447715 15 1V20H9V1ZM2 12C1.44772 12 1 12.4477 1 13V20H7V13C7 12.4477 6.55228 12 6 12H2ZM24 22H0V24H24V22ZM18 6C17.4477 6 17 6.44772 17 7V20H23V7C23 6.44772 22.5523 6 22 6H18Z"/>
</mask>
<path fill-rule="evenodd" clip-rule="evenodd" d="M9 1C9 0.447715 9.44772 0 10 0H14C14.5523 0 15 0.447715 15 1V20H9V1ZM2 12C1.44772 12 1 12.4477 1 13V20H7V13C7 12.4477 6.55228 12 6 12H2ZM24 22H0V24H24V22ZM18 6C17.4477 6 17 6.44772 17 7V20H23V7C23 6.44772 22.5523 6 22 6H18Z" fill="#262626"/>
<path d="M15 20V22H17V20H15ZM9 20H7V22H9V20ZM1 20H-1V22H1V20ZM7 20V22H9V20H7ZM0 22V20H-2V22H0ZM24 22H26V20H24V22ZM0 24H-2V26H0V24ZM24 24V26H26V24H24ZM17 20H15V22H17V20ZM23 20V22H25V20H23ZM10 -2C8.34315 -2 7 -0.656854 7 1H11C11 1.55229 10.5523 2 10 2V-2ZM14 -2H10V2H14V-2ZM17 1C17 -0.656855 15.6569 -2 14 -2V2C13.4477 2 13 1.55229 13 1H17ZM17 20V1H13V20H17ZM9 22H15V18H9V22ZM7 1V20H11V1H7ZM3 13C3 13.5523 2.55229 14 2 14V10C0.343145 10 -1 11.3431 -1 13H3ZM3 20V13H-1V20H3ZM7 18H1V22H7V18ZM5 13V20H9V13H5ZM6 14C5.44771 14 5 13.5523 5 13H9C9 11.3431 7.65685 10 6 10V14ZM2 14H6V10H2V14ZM0 24H24V20H0V24ZM2 24V22H-2V24H2ZM24 22H0V26H24V22ZM22 22V24H26V22H22ZM19 7C19 7.55228 18.5523 8 18 8V4C16.3431 4 15 5.34315 15 7H19ZM19 20V7H15V20H19ZM23 18H17V22H23V18ZM21 7V20H25V7H21ZM22 8C21.4477 8 21 7.55229 21 7H25C25 5.34315 23.6569 4 22 4V8ZM18 8H22V4H18V8Z" fill="#262626" mask="url(#path-1-inside-1)"/>
<path d="M15 20V22H17V20H15ZM9 20H7V22H9V20ZM1 20H-1V22H1V20ZM7 20V22H9V20H7ZM0 22V20H-2V22H0ZM24 22H26V20H24V22ZM0 24H-2V26H0V24ZM24 24V26H26V24H24ZM17 20H15V22H17V20ZM23 20V22H25V20H23ZM10 -2C8.34315 -2 7 -0.656854 7 1H11C11 1.55229 10.5523 2 10 2V-2ZM14 -2H10V2H14V-2ZM17 1C17 -0.656855 15.6569 -2 14 -2V2C13.4477 2 13 1.55229 13 1H17ZM17 20V1H13V20H17ZM9 22H15V18H9V22ZM7 1V20H11V1H7ZM3 13C3 13.5523 2.55229 14 2 14V10C0.343145 10 -1 11.3431 -1 13H3ZM3 20V13H-1V20H3ZM7 18H1V22H7V18ZM5 13V20H9V13H5ZM6 14C5.44771 14 5 13.5523 5 13H9C9 11.3431 7.65685 10 6 10V14ZM2 14H6V10H2V14ZM0 24H24V20H0V24ZM2 24V22H-2V24H2ZM24 22H0V26H24V22ZM22 22V24H26V22H22ZM19 7C19 7.55228 18.5523 8 18 8V4C16.3431 4 15 5.34315 15 7H19ZM19 20V7H15V20H19ZM23 18H17V22H23V18ZM21 7V20H25V7H21ZM22 8C21.4477 8 21 7.55229 21 7H25C25 5.34315 23.6569 4 22 4V8ZM18 8H22V4H18V8Z" fill="#262626" mask="url(#path-1-inside-1_1873:555)"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+1 -1
View File
@@ -1,3 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M18.013 1.10889L18.0433 1.07797C19.2857 -0.193723 21.3537 -0.408751 22.7918 0.823966L22.8275 0.854537L22.9935 1.01096L23.0262 1.04481C24.2931 2.3565 24.3049 4.40707 23.1718 5.78656L21.6845 7.59584L14.1605 16.7559L6.9503 20.0199L8.82643 12.2761L15.1821 4.53888L15.1817 4.53857L16.3832 3.07665L16.4505 2.99468L17.8601 1.27963L18.013 1.10889ZM17.9807 4.28L19.375 2.58351L19.4707 2.47669C20.0324 1.90179 20.9117 1.84497 21.4932 2.3434L21.5908 2.43534C22.1151 2.9782 22.1517 3.88027 21.6295 4.51599L20.2534 6.19L17.9807 4.28ZM10.6593 13.1929L16.7116 5.82501L18.9843 7.73501L12.9138 15.1254L9.85574 16.5098L10.6593 13.1929ZM0 24H23.965V22H0V24Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M18.0131 1.10889L18.0433 1.07797C19.2857 -0.193723 21.3537 -0.408751 22.7918 0.823966L22.8275 0.854537L22.9935 1.01096L23.0262 1.04481C24.2931 2.3565 24.3049 4.40707 23.1718 5.78656L21.6845 7.59584L14.1605 16.7559L6.9503 20.0199L8.82643 12.2761L15.1821 4.53889L15.1817 4.53857L16.3832 3.07665L16.4505 2.99468L17.8601 1.27963L18.0131 1.10889ZM17.9807 4.28L19.375 2.58351L19.4707 2.47669C20.0324 1.90179 20.9117 1.84497 21.4932 2.3434L21.5908 2.43534C22.1151 2.9782 22.1517 3.88027 21.6295 4.51599L20.2534 6.19L17.9807 4.28ZM10.6593 13.1929L16.7116 5.82501L18.9843 7.73501L12.9138 15.1254L9.85575 16.5098L10.6593 13.1929ZM0 24H23.965V22H0V24Z" fill="#262626"/>
</svg>

Before

Width:  |  Height:  |  Size: 809 B

After

Width:  |  Height:  |  Size: 811 B

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loaded 100 of 384 files, more files were not shown because too many files have changed in this diff. Show more