diff --git a/.eslintignore b/.eslintignore index 72d9c75bfa..a9cb8b55ab 100644 --- a/.eslintignore +++ b/.eslintignore @@ -4,3 +4,4 @@ dist/ coverage/ storybook-static/ packages/tokens/brand/**/* +tsc-build/ \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js index 523a70d632..df530407dc 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -47,6 +47,8 @@ module.exports = { 'react/display-name': 'off', 'import/no-unresolved': 'error', 'import/namespace': ['error', { allowComputed: true }], + 'import/no-named-as-default': 'off', + '@next/next/no-html-link-for-pages': ['error', '/storefront/pages/'], 'import/order': [ 'warn', { diff --git a/.github/workflows/check-storefront.yml b/.github/workflows/check-storefront.yml new file mode 100644 index 0000000000..49934183ee --- /dev/null +++ b/.github/workflows/check-storefront.yml @@ -0,0 +1,38 @@ +# Runs conventional commit check on PR +name: Checks storefront +on: + workflow_dispatch: + pull_request: + branches: + - main + paths: + - 'storefront/**' + push: + branches: + - main + paths: + - 'storefront/**' +jobs: + checks: + name: Builds, lints and tests code + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + - name: Use node 20 and yarn cache + uses: actions/setup-node@v3 + with: + node-version: '20' + cache: 'yarn' + - name: Install dependencies + run: yarn install --immutable + - name: Build packages + run: yarn build + - name: Build storefront + run: yarn build:storefront + - name: Lint Code + run: yarn lint ./storefront + - name: Lint CSS + run: yarn lint-style ./storefront/**/*.css + - name: Test + run: yarn test diff --git a/.github/workflows/checks.yml b/.github/workflows/checks-packages.yml similarity index 84% rename from .github/workflows/checks.yml rename to .github/workflows/checks-packages.yml index a1a2c6f6c9..93ec225255 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks-packages.yml @@ -1,16 +1,20 @@ # Runs conventional commit check on PR -name: Checks +name: Checks packages on: workflow_dispatch: pull_request: branches: - main + paths: + - 'packages/**' push: branches: - main + paths: + - 'packages/**' jobs: checks: - name: Checks, builds and tests code + name: Builds, lints and tests code runs-on: ubuntu-latest steps: - name: Checkout repository diff --git a/.github/workflows/storybook-deploy-vercel.yml b/.github/workflows/storybook-deploy-vercel.yml new file mode 100644 index 0000000000..b71b6ca962 --- /dev/null +++ b/.github/workflows/storybook-deploy-vercel.yml @@ -0,0 +1,41 @@ +name: Deploy Storybook Production +env: + VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} + VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID_STORYBOOK }} +on: + workflow_dispatch: + push: + branches: + - main +jobs: + deploy: + name: Build & deploy to Vercel + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: Use node 20 and yarn cache + uses: actions/setup-node@v3 + with: + node-version: '20' + cache: 'yarn' + + - name: Install dependencies + run: yarn install --frozen-lockfile + + - name: Build + run: yarn build + + - name: Install Vercel CLI + run: yarn add vercel@latest + + - name: Pull Vercel Environment Information + run: vercel pull --yes --environment=production --token=${{ secrets.VERCEL_TOKEN }} + + - name: Build Project Artifacts + run: vercel build --prod --token=${{ secrets.VERCEL_TOKEN }} + + - id: deploy + name: Deploy Project Artifacts to Vercel + run: echo "url=$(vercel deploy --prebuilt --prod --token=${{ secrets.VERCEL_TOKEN }})" >> $GITHUB_OUTPUT diff --git a/.gitignore b/.gitignore index e1404f8fbc..932d8cb7b9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ # Built files dist ignore +tsc-build # Yarn stuff; we're not using PnP/Zero installs .pnp.* diff --git a/CODEOWNERS b/CODEOWNERS index 84ab6ec8ae..7601f078e5 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -1 +1 @@ -* @mimarz @Thuneer @TomasEng @framitdavid @Magnusrm +* @mimarz @Thuneer @Barsnes @Magnusrm diff --git a/README.md b/README.md index 925375e4a4..21b80af1b4 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,11 @@ --- +## Quick links + +- [Storefront](https://designsystemet.no) +- [Storybook](https://digdir.github.io/designsystem/) + ## About the design system 📖 The Common Designsystem is a collection of important design elements and building blocks that can be used when creating different services. It's like a toolbox that everyone can use to work together and create the best foundation for public services across the country. By using this Designsystem, we aim to create consistent and user-friendly experiences in digital solutions for public services, making them more efficient and reliable. diff --git a/assets/img/component-guidelines/alert/alert-ex1-do.png b/assets/img/component-guidelines/alert/alert-ex1-do.png new file mode 100644 index 0000000000..381d8c8c3a Binary files /dev/null and b/assets/img/component-guidelines/alert/alert-ex1-do.png differ diff --git a/assets/img/component-guidelines/alert/alert-ex1-dont.png b/assets/img/component-guidelines/alert/alert-ex1-dont.png new file mode 100644 index 0000000000..32baa8c1a2 Binary files /dev/null and b/assets/img/component-guidelines/alert/alert-ex1-dont.png differ diff --git a/assets/img/component-placeholders/accordion.png b/assets/img/component-placeholders/accordion.png deleted file mode 100644 index 3eedcbf520..0000000000 Binary files a/assets/img/component-placeholders/accordion.png and /dev/null differ diff --git a/assets/img/component-placeholders/alert.png b/assets/img/component-placeholders/alert.png deleted file mode 100644 index e341ee06c7..0000000000 Binary files a/assets/img/component-placeholders/alert.png and /dev/null differ diff --git a/assets/img/component-placeholders/button.png b/assets/img/component-placeholders/button.png deleted file mode 100644 index f092f07665..0000000000 Binary files a/assets/img/component-placeholders/button.png and /dev/null differ diff --git a/assets/img/component-placeholders/checkbox-group.png b/assets/img/component-placeholders/checkbox-group.png deleted file mode 100644 index 51c37ec626..0000000000 Binary files a/assets/img/component-placeholders/checkbox-group.png and /dev/null differ diff --git a/assets/img/component-placeholders/checkbox.png b/assets/img/component-placeholders/checkbox.png deleted file mode 100644 index 8d9a80cfca..0000000000 Binary files a/assets/img/component-placeholders/checkbox.png and /dev/null differ diff --git a/assets/img/component-placeholders/fieldset.png b/assets/img/component-placeholders/fieldset.png deleted file mode 100644 index 340bb1a971..0000000000 Binary files a/assets/img/component-placeholders/fieldset.png and /dev/null differ diff --git a/assets/img/component-placeholders/help-text.png b/assets/img/component-placeholders/help-text.png deleted file mode 100644 index 19921675d8..0000000000 Binary files a/assets/img/component-placeholders/help-text.png and /dev/null differ diff --git a/assets/img/component-placeholders/list.png b/assets/img/component-placeholders/list.png deleted file mode 100644 index 4cd0624fcb..0000000000 Binary files a/assets/img/component-placeholders/list.png and /dev/null differ diff --git a/assets/img/component-placeholders/popover.png b/assets/img/component-placeholders/popover.png deleted file mode 100644 index 184544c1ec..0000000000 Binary files a/assets/img/component-placeholders/popover.png and /dev/null differ diff --git a/assets/img/component-placeholders/radio-button-group.png b/assets/img/component-placeholders/radio-button-group.png deleted file mode 100644 index e1e72fcc8c..0000000000 Binary files a/assets/img/component-placeholders/radio-button-group.png and /dev/null differ diff --git a/assets/img/component-placeholders/radio-button.png b/assets/img/component-placeholders/radio-button.png deleted file mode 100644 index 69ec3cd1d2..0000000000 Binary files a/assets/img/component-placeholders/radio-button.png and /dev/null differ diff --git a/assets/img/component-placeholders/select.png b/assets/img/component-placeholders/select.png deleted file mode 100644 index e1bda823dd..0000000000 Binary files a/assets/img/component-placeholders/select.png and /dev/null differ diff --git a/assets/img/component-placeholders/spinner.png b/assets/img/component-placeholders/spinner.png deleted file mode 100644 index e4b76b7ac1..0000000000 Binary files a/assets/img/component-placeholders/spinner.png and /dev/null differ diff --git a/assets/img/component-placeholders/table.png b/assets/img/component-placeholders/table.png deleted file mode 100644 index c0110618fa..0000000000 Binary files a/assets/img/component-placeholders/table.png and /dev/null differ diff --git a/assets/img/component-placeholders/tabs.png b/assets/img/component-placeholders/tabs.png deleted file mode 100644 index ff98e1c71c..0000000000 Binary files a/assets/img/component-placeholders/tabs.png and /dev/null differ diff --git a/assets/img/component-placeholders/text-field.png b/assets/img/component-placeholders/text-field.png deleted file mode 100644 index 07ee416b48..0000000000 Binary files a/assets/img/component-placeholders/text-field.png and /dev/null differ diff --git a/assets/img/component-placeholders/textarea.png b/assets/img/component-placeholders/textarea.png deleted file mode 100644 index 648e7b9c95..0000000000 Binary files a/assets/img/component-placeholders/textarea.png and /dev/null differ diff --git a/assets/img/component-placeholders/toggle-button.png b/assets/img/component-placeholders/toggle-button.png deleted file mode 100644 index 3ea6a56e94..0000000000 Binary files a/assets/img/component-placeholders/toggle-button.png and /dev/null differ diff --git a/design-tokens/$themes.json b/design-tokens/$themes.json index 90d3874a87..6a648f34eb 100644 --- a/design-tokens/$themes.json +++ b/design-tokens/$themes.json @@ -7,159 +7,143 @@ "Base/Core": "source", "Base/Semantic": "enabled" }, - "$figmaCollectionId": "VariableCollectionId:6687:22402", - "$figmaModeId": "6687:0", + "$figmaCollectionId": "VariableCollectionId:7721:2966", + "$figmaModeId": "7721:0", "$figmaVariableReferences": { - "semantic.background.default": "547be4a6f725dce5581aeff848cd126091f827b9", - "semantic.background.subtle": "22993e7f76281a8c733b70584ad8b110e90b34a9", - "semantic.surface.neutral.default": "2b7bb92eac0d3d9ed03d39b07f36e5eb5c41ebc4", - "semantic.surface.neutral.selected": "1fcf6120801f9449350924fdc7b76cb3310e8d71", - "semantic.surface.neutral.subtle": "4010e3431ac0a937e9ce19d089e2e0286b43e821", - "semantic.surface.neutral.subtle-hover": "d7111ac00f2ad3173551d48a1b8eb18aa6ce8780", - "semantic.surface.neutral.dark": "fa53069089a04f73f521c40a1c46f4ad9d8e5ab6", - "semantic.surface.neutral.inverted": "194a96b25d763571fce361d0b3f6549c1064ccf8", - "semantic.surface.action.primary.subtle": "a09e93c6839419cda7d3934a3cef122cf457f1e7", - "semantic.surface.action.primary.subtle-hover": "c79e750cbc6c3f09335358177c7f443ace28a890", - "semantic.surface.action.primary.default": "d870fbe1c740ff4762e48cffb41a4be0414b3d80", - "semantic.surface.action.primary.hover": "88c75aa37513dd6c8add70d06831b6b34a0eb7b5", - "semantic.surface.action.primary.active": "0025645316743a1fdeb40ab883d30e19393a34e7", - "semantic.surface.action.primary.no_fill": "9382f99a1bfdfbc7b3a7a28c010ddd3235927982", - "semantic.surface.action.primary.no_fill-hover": "545895419363e59ed758f28a48d0acfa1ea4a5d3", - "semantic.surface.action.primary.no_fill-active": "8649d43ea3ab0d01b33630244e3436880a4df189", - "semantic.surface.action.secondary.subtle": "107ce81a4d4e120b22bf90ebdac3cc25976cbc66", - "semantic.surface.action.secondary.subtle-hover": "b8c826b61db7addab887a4a98d33a3c312bcc207", - "semantic.surface.action.secondary.default": "eecfdbba6e6b011e4eefe1446cc5a25f6c5bbf05", - "semantic.surface.action.secondary.hover": "97b3da2bde709a21bd9428dab0344bc13073f7bd", - "semantic.surface.action.secondary.active": "755034f2b11a445343eef3bf73d93b94c53d9a44", - "semantic.surface.action.secondary.no_fill": "014aaa70b825b2055fa807287ca40d9a64af5991", - "semantic.surface.action.secondary.no_fill-hover": "8e81c0f99073b6e1a0902fbca898a42d7d186540", - "semantic.surface.action.secondary.no_fill-active": "3ad6e419293b45f5cfa131e030e6767d1dca28ab", - "semantic.surface.action.checked": "4f6f01bc5c4d227bc26781bcdb28307ca237456d", - "semantic.surface.success.subtle": "2a04aa79726fa40203dbf87b97dba8a52d86c23c", - "semantic.surface.success.subtle-hover": "442b3a51129177a638a96414f033fb73fe16cb06", - "semantic.surface.success.default": "835c7eb76b04fafe1ee1cc41f1ff229516008897", - "semantic.surface.success.hover": "70046e630d528d719d2da035b2a51f98132ba553", - "semantic.surface.success.active": "69c24d7453778cbfeb36ea36557ed7a1f7154459", - "semantic.surface.success.no_fill": "1e4ab306ff4119daa53fb664f82b2b2737c4474f", - "semantic.surface.success.no_fill-hover": "88c6155d1495b3ff7b91f00d015bffe2c836932c", - "semantic.surface.success.no_fill-active": "71173889289762979b7b91225fa07dc1294c5a46", - "semantic.surface.warning.subtle": "7afb734633f3f07bce6e98309b7d95ec7432f452", - "semantic.surface.warning.subtle-hover": "a13327d1d0720a7ceadd1ff1838ef301fc31d4f4", - "semantic.surface.warning.default": "2d43f9d9da78cd8ee96a7f65224a8c58d0be0682", - "semantic.surface.danger.subtle": "3d66a5bded55a5c6e2f9d295a36c739d96033c35", - "semantic.surface.danger.subtle-hover": "067b039f16fd58979bc13dbba682a5cbe070983e", - "semantic.surface.danger.default": "89e670463e494c3f56b0f5985c027c9a8f2da10f", - "semantic.surface.danger.hover": "2b72de1ad03b5025bbc0fa4b036832f5578b1afa", - "semantic.surface.danger.active": "98316e9a1662a2f013e3c1dc0c01be28aafd7a30", - "semantic.surface.danger.no_fill": "98781d722a2e9bfe576602e2f0f9d2e50b17c518", - "semantic.surface.danger.no_fill-hover": "8e80d1990e2f23b1aca3ee3aaa4c28ed949c6846", - "semantic.surface.danger.no_fill-active": "05d2aa80128fe5415071d83574d44e0326236e17", - "semantic.surface.info.subtle": "fcf5f1f73d7544b7bc6059db636b9dd6d9a890c4", - "semantic.surface.info.subtle-hover": "3b0ec42d5cf3cf51ba3c43fa48b60bda8dabf6b8", - "semantic.surface.on_inverted.default": "437831ac5d1fca3b0984f4e5b8da198649d07d01", - "semantic.surface.on_inverted.hover": "b2647990a16fe105bd4019d93eb913ecd882f52e", - "semantic.surface.on_inverted.active": "0ba2cf58b3ca9876c0beff959eac1cb82ff5afbf", - "semantic.surface.on_inverted.no_fill": "a2c4e6f36207446e31eb5b5869b479e0eb0e2eaf", - "semantic.surface.on_inverted.no_fill-hover": "b39380a9022ebe04ab836f33092502e21d89ee91", - "semantic.surface.on_inverted.no_fill-active": "ed6c0f14f56e45772685fe61303c9b0a61ca5db3", - "semantic.border.info.default": "48683ce661a0380eee289c93676417e0efbb392f", - "semantic.border.action.primary.subtle": "94fd6d1d32ca444122590350dbaf5d3890db21be", - "semantic.border.action.primary.subtle-hover": "cb78753790660fea147c282d8d149d1c4d4f95be", - "semantic.border.action.primary.default": "114aac0b0786b198a5588ad10e5913645513158b", - "semantic.border.action.primary.hover": "934ba4af4f1460486e0e8eae4b89033c829032c7", - "semantic.border.action.primary.active": "857157ae2f6c35ff9524cc0af9d3a4b0609b1c63", - "semantic.border.action.secondary.subtle": "29179e71847e1a1a375cf94b7ca7b8441c84c93d", - "semantic.border.action.secondary.subtle-hover": "602f06c869c86ce50cf5a80410f672b155bbcbb8", - "semantic.border.action.secondary.default": "20948acfebc16b98ebdec218156eb3d4156c0867", - "semantic.border.action.secondary.hover": "59b9c4d246e503f867dc67a58ea049bdff778761", - "semantic.border.action.secondary.active": "c44fc2b5b1167ed0a9721fffb500fbd953106d6a", - "semantic.border.action.hover": "a2f8f4e4e251e043760e84a07d2e45168db134c2", - "semantic.border.neutral.default": "6eef00f8c90207cd1a7887bfcd6def2021ab3bcd", - "semantic.border.neutral.subtle": "d7b34602ebe292a4b03305d26722b93960e93fc7", - "semantic.border.neutral.strong": "d83f0b3fbe1abeb0ae421abf1ebf2f861eec5b5d", - "semantic.border.neutral.divider": "1337bec4c9653819086501c3dd834106070075f8", - "semantic.border.success.default": "c17e24c57dfcf38afa3fd635149f5bf502fc85c6", - "semantic.border.success.hover": "af41a9a87003e106d894c92129bb7fd4ee5f9d49", - "semantic.border.success.active": "ba5934cd6304ab362abc073f7094473f45a094ca", - "semantic.border.warning.default": "b71fecd66d000a8438a4df1f8f865c487e798686", - "semantic.border.warning.hover": "3ff992de6c8ab280955895886fcf6dd04f2b3642", - "semantic.border.warning.active": "3afd9c0e921e1536ed1d06cc4b9c0090aa3f9420", - "semantic.border.danger.default": "c4628be9b604ed1bc0e894ca3a632a13410db647", - "semantic.border.danger.hover": "1ee4ff5071c03b2c28fd3939b6fd35a44f4fef37", - "semantic.border.danger.active": "934bcf8a7e0bcfdd722d0f4e24535065b434ca6e", - "semantic.border.focus.outline": "4188244d608672ede2da22a845c44e834a67b3b9", - "semantic.border.focus.boxshadow": "9c58800167b803070ddc4632c994dc9a7e0d899c", - "semantic.border.on_inverted.default": "46b934406ad4eeb0f65b78709d9edd838b677542", - "semantic.border.input.default": "a8b4d59734f6a241aff40e18ee986424766d4f50", - "semantic.border.input.hover": "ac38dbab5a26d82b72b15e77d41b191b38adcf9d", - "semantic.text.success.default": "7666e28949b5de4dc845332bfd2402e5900fc59e", - "semantic.text.success.hover": "f0a7e1bdf9b137f8b0eb3a073e4d785e56db36c2", - "semantic.text.success.active": "cab1dbce312318542006fad5148f9cb309a3b277", - "semantic.text.success.on_success": "83f0a2deed3b4892a851e225a5f0165ee89e7653", - "semantic.text.success.on_success_subtle": "d793befcff6ee788629a72e0e65bffd02340e0e8", - "semantic.text.neutral.default": "999292c3b8292787084d9c3859309b304186d367", - "semantic.text.neutral.subtle": "ed85f1e3cafad594a78f25d38ac2745531a32876", - "semantic.text.neutral.on_inverted": "2012fe721a4389ed69bf5049c4dd86cbd2937401", - "semantic.text.action.primary.default": "0eae0cdd52bc4e385a40e3bbebadf26c075b1132", - "semantic.text.action.primary.hover": "d33c8adcfcedafca4f5cdbc87bc5fc131d0df188", - "semantic.text.action.primary.active": "6f2a875799488a430e4c0eafe5f5aafb38fe12f6", - "semantic.text.action.primary.on_action": "45a43b2a6e3abbdab98bdd3b5584b42bb3494ad1", - "semantic.text.action.secondary.default": "471c26da804f5091f52774b29b06a03340e90b84", - "semantic.text.action.secondary.hover": "14e85a5f7a8a85f898eb4eef788d998b580a5b47", - "semantic.text.action.secondary.active": "1c6daf9472e2b256bc2ea4dc790e3dcc15a311b6", - "semantic.text.action.secondary.on_action": "1b750099a3b53cd4739f2f0e16d10c5930692ce1", - "semantic.text.warning.default": "40c0dba6acc5131bcb51edb9a158ca53431baff8", - "semantic.text.warning.icon_warning": "bbbc0e6fc49a33aad7f9f6a32fe6dde77885261b", - "semantic.text.warning.on_warning": "9dcedf3470a2b3f08e409ab4a9dcd12dc33a842c", - "semantic.text.danger.default": "1b822e5dd7badc7a5337ad35e9d8dad2dfe62867", - "semantic.text.danger.hover": "84a1c9357b7cf3dff89893996dc4b3900e9cdcf1", - "semantic.text.danger.active": "058584c92a6d4917ddeb46043dae3dcdbbd38b99", - "semantic.text.danger.on_danger": "e9270218dc1557427059c878aa6f72371c5e98ee", - "semantic.text.danger.on_danger_subtle": "de6b1a783f5f364a5e1a28fe77a49cf69c5e7837", - "semantic.text.visited.default": "e8f1115e02a17c368275c1ded94eba3bcfc4539a", - "border_radius.interactive": "719e02a9b6926f6a32e8b3efb1162b2c354aa343", - "border_radius.small": "7a9ee10b747f5db27d3aa404076fb51a97a25ded", - "border_radius.medium": "c61e65d00a27d695467785071a5dc9ec65959df0", - "border_radius.large": "9959b737e14ff9c6e0f13236b98062470905c878", - "border_radius.xlarge": "694b1d5abfe6fb5597de36a3b9c011f96692fb2e", - "border_radius.full": "eec47d123f630371be2d0ad88e0641897b672e74", - "spacing.0": "90a4e4bfdec6e38c371179fc3a19b8293a07b881", - "spacing.1": "c02bac25f99d2ad30acbf6a669c86a2512baca49", - "spacing.2": "4d12b6e18ef507baa52ab920d3d325d58ddbe0e0", - "spacing.3": "271c0cd1b08fd1461ce16c323f6927a572d2e351", - "spacing.4": "7417c8797a90c999cd57d5d453b5e3481111591b", - "spacing.5": "b9eb9d553157c9ffabe0e3a1d020e256e4e39d58", - "spacing.6": "896dd777c052d0eb5f130ec8b2020cfc80b63740", - "spacing.7": "54a918c200628c5d54c25c02e1ffff6030fdabd2", - "spacing.8": "0853ef6087fda36b6bc93e57c6fa5c109a3a7e8f", - "spacing.10": "43f28352ae3c76c334b2e2f240f4ebdfbb3dfd66", - "spacing.12": "a0eef940bbc84c6c16fd914f0a56dd335617e3fc", - "spacing.14": "903f63a96856c7e9903327346b328ac4ee63614a", - "spacing.18": "acf29c89f89c71a1ae03ed7a5a3353155ed3da91", - "spacing.22": "7350ea6fd858d5bc7e608b654473fcee981cc0c7", - "spacing.26": "9cc7ea33b0cf11cf9e6075b5999d84230d2af32c", - "spacing.30": "8d32043a0a49ea22a7ba9482f4a9fa17a77d7827", - "base_spacing": "5f19e70b885dbbe446add43f6b67ca2433669e84", - "sizing.1": "04546316bbf5e62d16b01db649e727afa33a0de4", - "sizing.2": "a36843841c36d32200d556a309cd80d28f419532", - "sizing.3": "72fb690afedf47dc2828a30a103502532b59f09f", - "sizing.4": "58594de6f8672d640f4dd6ea89d45479074266c4", - "sizing.5": "2c8d2dc1716d6f84da431228a829fe4417c3a3e0", - "sizing.6": "37faee348dbb66066cd283baae9d663c42994fb7", - "sizing.7": "f1c417a149739a5368fe785ca4d39232e875c797", - "sizing.8": "3f3c7b081669cd037a88c934d94c8c5b43520fad", - "sizing.10": "c398873434964ecf4aac52a609495e11866784e1", - "sizing.12": "09a658edb12e3ba57483e9418f23a3e713d24651", - "sizing.14": "97f68b49d6c57914e3b5f24552bc8fbf29af3b08", - "sizing.18": "d8dcf3513325da7530e7eee356d5d1927353fd80", - "sizing.22": "6894d0c64773fa24383a6b0dba3535fbc02f96f7", - "sizing.26": "5080816b83dcae5df4da562dcee9d9ec4abae3d4", - "sizing.30": "a76454842a6359bdaa36d1d98876a8442b83ca94", - "base_sizing": "8b2e38e747d963c47774762963f63383916e47ab", - "border_width.default": "9d16c8e36225953fb4962f8740c4c61564d5a301", - "border_width.active": "5a6e53c5e40ed0bba4925a247a6ecc099b7c4fa1", - "border_width.tab_focus": "064b5dac51141b65dfc44d3c255a04644cca3547", - "semantic.border.action.dark": "e447feeef19c9d45be5c1aaa78b0c83b0470ba62" + "semantic.background.default": "e7e91cad7d4d8c4993e5fa54b169c100fca291da", + "semantic.background.subtle": "5cd9c639c1c4123f1369dd902da15533fd7e73f4", + "semantic.surface.neutral.default": "cfb9180a64c4c113d2c003d7a02c7084f3d29864", + "semantic.surface.neutral.selected": "5defd32eedc3f2c7e64c6509ffe26b1917f5f6c4", + "semantic.surface.neutral.subtle": "0b7681e25e163a5b1416a93cd4471225a752da14", + "semantic.surface.neutral.subtle-hover": "de2da22043a941d4f30621b86eafeb8893554e47", + "semantic.surface.neutral.dark": "f428dd6eeada38db8c8fbbcf3b9938ae87f36c2d", + "semantic.surface.neutral.dark-hover": "f6dde872cd9452e3a77568bee36f1499e839155d", + "semantic.surface.neutral.inverted": "6dd7ba50b8e91439deb142bb1ae635cb26e73dc5", + "semantic.surface.action.common.subtle": "f5bdc3419e11920c78bb76100545676e5382c830", + "semantic.surface.action.common.subtle-hover": "3c840fec1e2d98aa3eb9053207288803766053de", + "semantic.surface.action.common.default": "3dd8dcd00bb776a5970100af5c254ad0e620dae8", + "semantic.surface.action.common.hover": "a1256baa3ccd5c889873c57f9e45ddb6a13bba28", + "semantic.surface.action.common.active": "9cc512f6733959dd82abaca405d250cbb2ff0020", + "semantic.surface.action.common.no_fill": "2c067af61787af725faf0c33cf0d26f3103bd0fc", + "semantic.surface.action.common.no_fill-hover": "ca65d9369ee8775d61a45d24f5afcef34e39aacb", + "semantic.surface.action.common.no_fill-active": "6a414595ef7e1f4d3b9ab7f1ec2d9d002d3fe5dc", + "semantic.surface.action.common.checked": "6724ab1ed3530681ff2c7d425068f21fc8bd2958", + "semantic.surface.success.subtle": "7bd203f8e3c9edb168e3677998afa2e029e10f99", + "semantic.surface.success.subtle-hover": "bd93a522d36ea99b1dbedc28023d38240f899191", + "semantic.surface.success.default": "15c28264e226ca1e133c8dab7864ee2cc6ca3f99", + "semantic.surface.success.hover": "f855dcd954d1aeec6b0da97cd22fb1ca496ad20c", + "semantic.surface.success.active": "bdf7fc358a82be4ee1a1e705a59e7c2137f5dbaa", + "semantic.surface.success.no_fill": "c8c1cae4212f00fbed29ac23f21249338697d31c", + "semantic.surface.success.no_fill-hover": "1149e2299393c578f51ca50e9aa3809c9a840524", + "semantic.surface.success.no_fill-active": "5c768f766d56a607cce1020d7e2bf667cb980916", + "semantic.surface.warning.subtle": "651349b9038aed7689a50916621cc13fe8c95063", + "semantic.surface.warning.subtle-hover": "692bf8fcc4e3b0936d32c24fb55df20b8d26de9c", + "semantic.surface.warning.default": "5fde026442b8b80687d10f7e7067c4e56b79e5bb", + "semantic.surface.danger.subtle": "ace186f60eefae7919c5276174827472fce3f8a6", + "semantic.surface.danger.subtle-hover": "9ad01ec7eeed5c1a0c93a8bae3c4a91bff8e8e2a", + "semantic.surface.danger.default": "1f8ac1fd0aa61cce0dcb0887b35f8a7fe83febc6", + "semantic.surface.danger.hover": "59f368ea54a9dee162f21f5ee1fa7f4e212b27c4", + "semantic.surface.danger.active": "618ed8b416a97826abb04bb61eab4c775b0973ef", + "semantic.surface.danger.no_fill": "3cecee7eaf626753ef94a1c9183507ffd056aff4", + "semantic.surface.danger.no_fill-hover": "14bfabb910e31fbcfa8d817e490605c9a37eda77", + "semantic.surface.danger.no_fill-active": "210eb634a846a53248941f6b7107c6cec2b19d90", + "semantic.surface.info.subtle": "ebee93032aefe05d6862e0e5a5a255be658d90f9", + "semantic.surface.info.subtle-hover": "020a1f38a918d49cbe7e851621e59ed039849e93", + "semantic.surface.on_inverted.default": "2f2cf0334763f0be0013d86951d43ed6d2fb2568", + "semantic.surface.on_inverted.hover": "c92521ba29b62e55f4802ec35662c9ec622b0ada", + "semantic.surface.on_inverted.active": "85127e4efdef259d8ca846ce633b6b67b3263a49", + "semantic.surface.on_inverted.no_fill": "0d6f8ac81d672291a204fa3ea76ac5b910f11605", + "semantic.surface.on_inverted.no_fill-hover": "8acf74d27a990d127050269c90aa05d0029e6813", + "semantic.surface.on_inverted.no_fill-active": "b6a4f3d89a860b7072491eb7fdad28bc4131bb72", + "semantic.border.info.default": "21cca19fc1c3a14f7f27d6ad3622935bbc0617db", + "semantic.border.action.common.subtle": "8669800fb2d0f12a24e302bae5f38393b1c29ace", + "semantic.border.action.common.subtle-hover": "f8fe5ef83802de793f223793dfac25103001ebf6", + "semantic.border.action.common.default": "9eb4143712134c7fc7b3791cc8be73f64ec5af1b", + "semantic.border.action.common.hover": "fa818d547035d15535034234f9118bf19863945c", + "semantic.border.action.common.active": "6c3d3ec528de1cdec5adecbc07cf86c4cd1918f2", + "semantic.border.action.common.dark": "43b7fdf5ee7eec5a99a5d4b460eb79d0fdfece38", + "semantic.border.action.common.dark-hover": "86d84d471e58e05971dbc3308da4d07ee6f1f6fc", + "semantic.border.neutral.default": "dc2a2d770f8d9be91f770503320fcb0c55153f9b", + "semantic.border.neutral.subtle": "99692cc14a56e45ca439e9c3c608ac73161fe000", + "semantic.border.neutral.strong": "defaa2623c44046838342f1da6b56efd9ac38f12", + "semantic.border.neutral.divider": "a322abf8d224aa60e30f620ec4474bf6b25905b4", + "semantic.border.success.default": "661504b28de00dc73f336ffb1dc5f9ee1e824e00", + "semantic.border.success.hover": "1e8ae8f06aee321425fe575836321339b295dd83", + "semantic.border.success.active": "1e070adae5bfd459b90e86a0bcad8080a312ffa7", + "semantic.border.warning.default": "126679ab7b9b35925c357b1800f272a4836d10c9", + "semantic.border.warning.hover": "18b999b0f6b0fea8242cf8899fff398e3dd4ed68", + "semantic.border.warning.active": "930d54cb39eeaee1aef5436f2c443e4b1a4ef932", + "semantic.border.danger.default": "0ca5a22ef2fd9d10418f3d82b2fd982d715930ca", + "semantic.border.danger.hover": "4ffb1917389cdc8fa294cf6bed58c65e6e4dca4e", + "semantic.border.danger.active": "4458a0f864870046a75b9d92e8767ea50592dc08", + "semantic.border.focus.outline": "0d71ebb82d592374ce6672872fd404732ea6f383", + "semantic.border.focus.boxshadow": "71a7f0dc43577c00e6965ff3f38c7bcf708435e6", + "semantic.border.on_inverted.default": "ee11fdcc0ab03b8e22e623e6029fd5f0788fb525", + "semantic.border.input.default": "0e4fd12d67159ceb871a820dbaebf001d8c3884e", + "semantic.border.input.hover": "0bf7867e90272b1f5d858f2210efa8613e2c4dfc", + "semantic.text.success.default": "5902ad2d2e08380ea63897c4a2c0abe765973061", + "semantic.text.success.hover": "cffbc33d33e4f64dfe3ce79eb85099537ddb9c33", + "semantic.text.success.active": "b44e0696de9b4bb7c4269a565b759cbd0283f8e5", + "semantic.text.success.on_success": "fe1c5375ddb6d36921246ac522ed90edbe71dc39", + "semantic.text.success.on_success_subtle": "6b724f6b2b401d8bb4d75865b15bd32f5e276c10", + "semantic.text.neutral.default": "0903f7873307965435a1afd3e4026ae3be2d204e", + "semantic.text.neutral.subtle": "7779664fb70a118bcbe00e01d02f95b9687a5704", + "semantic.text.neutral.on_inverted": "d1ef2831833f5c69dd6bac90ae86dbf7cfe6fca3", + "semantic.text.action.common.default": "0b5947e68051c95071ec9d3ace02ea523e091f59", + "semantic.text.action.common.hover": "263ac432a1890bd2c2420af71aef553862730e80", + "semantic.text.action.common.active": "7caf2d99efc73753ad7794ec80a3a74b2c2a1235", + "semantic.text.action.common.on_action": "26d0fa2b02900870d102e974df033c033ae4ecb5", + "semantic.text.warning.default": "f8435bfae64ab932a54eb3366bc51f83590ef5b0", + "semantic.text.warning.icon_warning": "4e8ee733bd86cabfaad29f59fe15bf1e5eed5923", + "semantic.text.warning.on_warning": "8c93a9a75795f981e8340d71497d36fc59da414a", + "semantic.text.danger.default": "f35f33ef5c272847b32f3a458cba364bd621b0c0", + "semantic.text.danger.hover": "0d97758d5e72c92e7740490dd64fdb3735e7f0b1", + "semantic.text.danger.active": "f9201468bdffefdc81c25707a946ac987644ff89", + "semantic.text.danger.on_danger": "c4690ebc5df479b729563ab67a58187c3bd3179d", + "semantic.text.danger.on_danger_subtle": "a73ccb113189004f0b850c0fb525717dde0850d1", + "semantic.text.visited.default": "23cf9f9bf3a5154a92fa4c2db72705239d379830", + "border_radius.interactive": "d0197f67031abf0002e4af4157192b013f3c2968", + "border_radius.small": "147fa48d1111e172c686060bd89d793dc080501d", + "border_radius.medium": "100abf46647f0e29906bbc471c150750c5112ef5", + "border_radius.large": "346e26e76f97b4b478975436856c1fa19e6e755c", + "border_radius.xlarge": "0a235a595afeb4a784a13a2d365b7e3dac32e0af", + "border_radius.full": "e167c834356039e5be68596ee4b18d0e2c5ffb26", + "spacing.0": "c0a452ad9e2555e8885ad03e22bf6726de279b5b", + "spacing.1": "3a751e741c52f35df45bea76ca1f1d4bbcc8189c", + "spacing.2": "f6670477b357047f45759484aeffbe22c83c76aa", + "spacing.3": "07f8edc3822d9b5a363565815ba0bf23d8524411", + "spacing.4": "dcd0829950ddca2ff3c608edf71d6de12d7b56e4", + "spacing.5": "bf8bac25dec2bdaa3b95b97737570d7d4ee1625e", + "spacing.6": "b4117d9fe6c1b2104e8d1938f5885fc7cca95a4b", + "spacing.7": "e8fc3b4d4b34131805d4b60b6a19695d80406290", + "spacing.8": "13e912de0f2b3877ac719b9b6437bd1f83b74cd6", + "spacing.10": "98e72ae88d022522172713315071618da5774f8e", + "spacing.12": "b39b157e89ffe318b5613ebe8e92cc6b65aa0934", + "spacing.14": "88893e9d6ecf9d5147767e34498c57b345e52096", + "spacing.18": "11bdcdac5048ceadc12e41bf26f06f4f3c035a8a", + "spacing.22": "fa0c08958dcd6ee93195a5e5dd5bbb2894bf26b4", + "spacing.26": "50aca80d886266dbb5578ea44746175e88ba6b95", + "spacing.30": "412b8378c14840ab8865cc86232289244c1c8cb9", + "base_spacing": "729c72b4ea11009164ebd3395633cf2f6aef8249", + "sizing.1": "d44cfeccce68eab89d09591518fc32e108890484", + "sizing.2": "1d69ff6bd36a1a69a4701397389b46539e9efeeb", + "sizing.3": "b645a8c79e0078c54d579cd3d6fe61c0390118ee", + "sizing.4": "70ed621a94a4a9a3e4e7000d1d2a2b3bbfb1fa0e", + "sizing.5": "c0e63cac333a2514826c29256634190dfe007ae0", + "sizing.6": "31512b569fdc9057e89ee714f6c314dbb0aed467", + "sizing.7": "220e99598eeb57469c5f1a51afd11374f961f423", + "sizing.8": "d3c0b7132bd3cf7f4e97bfe034ced4afdc1b0627", + "sizing.10": "62b37fc4067d2762653ff6872d44ac529c2873e7", + "sizing.12": "d9e53776f2795121838722d82eeae090cd94864b", + "sizing.14": "711fee0840389f17e18700dedd77979ae32f0335", + "sizing.18": "f88be992519e1f8bfe3d8115217d2acf6a4cf677", + "sizing.22": "7f509409e3625e2fb0449df7d2d42cd441f3e82a", + "sizing.26": "eb188af80483d28495f216ab18dba1cf5634f691", + "sizing.30": "dac41f8e7618e2e2c8cbb9c73187e7798260583f", + "base_sizing": "7efead99136e81bed601b9c01e27e28e7e8a2e1b", + "border_width.default": "dfcd0568ecfbf3837e887626b694fe16b0335d86", + "border_width.active": "a597eedd5138fb532a105011b85d756b6862ff52", + "border_width.tab_focus": "d8d78247b3135f9a462ba968b4f8fe552c8b0b17" }, "group": "Core" }, @@ -169,7 +153,8 @@ "selectedTokenSets": { "Brand/Digdir": "enabled", "Base/Semantic": "enabled", - "Base/Core": "source" + "Base/Core": "source", + "Density/Default": "enabled" }, "$figmaStyleReferences": { "heading.heading-xlarge": "S:3c153973cb7a9a9c750db73e13e99baee56692e7,", @@ -295,7 +280,6 @@ "semantic.background.default": "S:aa05601b5bcf03508012ba6b87a2293984b31e3f,", "semantic.background.subtle": "S:69bc5795ca06ab12402fab8778139626f3de589f,", "semantic.surface.neutral.inverted": "S:342e6a24beb1d93152914f61f3a1a11a2f8188e2,", - "semantic.surface.action.subtle": "S:f159c7f63f4e095cb75bf770cf0625366a56d8b6,", "semantic.surface.action.subtle-hover": "S:71d1e125704adf63c5b0ffd42421d808bd322531,", "semantic.surface.action.default": "S:eb4951e1f7cfd99d167e4ab67d3edc2c3e412a60,", "semantic.surface.action.hover": "S:4e4bb9c41d91a71b50bc5d84fcd0e22630628ba4,", @@ -328,7 +312,6 @@ "semantic.surface.tertiary.tertiary-hover": "S:80e9253afce445a3c6f2a6bd98c372501933ee6b,", "semantic.surface.tertiary.tertiary-active": "S:b689fae8c6cc5fd27dae42b560d971d5e7dbb9ae,", "semantic.border.info.default": "S:19df2fc03ec24346fa30c0b37d50b64cb0c85614,", - "semantic.border.action.subtle": "S:04ad95c402fd76ed849b1031835632c8d3c06236,", "semantic.border.action.hover": "S:bc8730939b4c02ed642ca9a8e5397ecaad9ec020,", "semantic.border.action.active": "S:019654324698b19d71ba02e616e183dfb30f15b9,", "semantic.border.neutral.default": "S:86de0ad5e55f2e4ac7cb2a0ad8f48105e6e9a626,", @@ -352,8 +335,6 @@ "semantic.text.neutral.default": "S:ff25f9c6a756a42bc0124e07113dcf88a850b704,", "semantic.text.neutral.subtle": "S:b9232f360e337f73b13c80760edd2348d3869247,", "semantic.text.neutral.on_inverted": "S:eb14dc1096bbccf930da18005deb357bafa6bc21,", - "semantic.text.action.default": "S:e7ff72a6683853f5403350ace19fdef1cf265a06,", - "semantic.text.action.on_action": "S:a8b81cc349e852d00861be87404778bc6aab598c,", "semantic.text.warning.default": "S:fe3805478223d98b0a890f4aa9c9f748402ad858,", "semantic.text.warning.icon_warning": "S:d839a0ba929a7eb4596f88a46c2d78ef19c8bb4a,", "semantic.text.warning.on_warning": "S:37cbee9d1eb7e246fab472e635705bee4ba871cc,", @@ -416,38 +397,51 @@ "semantic.surface.primary.light": "S:5d186a6b3411853833badfc76abd94a6fdfbc63a,", "brand.secondary.900": "S:23925b130515fb61d12fb3414165f61e094a6262,", "semantic.surface.danger.no_fill-active": "S:edd236f2e24d2f9f83699730b5ef792aa03d96a5,", - "semantic.border.action.dark": "S:38130df3c467c65fd93968897876556bc5bf60e7," + "semantic.border.action.dark": "S:38130df3c467c65fd93968897876556bc5bf60e7,", + "semantic.surface.action.common.subtle": "S:f159c7f63f4e095cb75bf770cf0625366a56d8b6,", + "semantic.border.action.common.subtle": "S:04ad95c402fd76ed849b1031835632c8d3c06236,", + "semantic.text.action.common.default": "S:e7ff72a6683853f5403350ace19fdef1cf265a06,", + "semantic.text.action.common.on_action": "S:a8b81cc349e852d00861be87404778bc6aab598c," }, "$figmaCollectionId": "VariableCollectionId:6324:1609", "$figmaModeId": "6324:1", "$figmaVariableReferences": { - "brand.primary.100": "63e5e5b3492f8c2eb6a3bf28c4cdaf30fec110dd", - "brand.primary.200": "057a0b83108d7485acbacebb29af2ee8f628c8e4", - "brand.primary.300": "c1a6210a67e3c9290e972b3127fe73233ad4905d", - "brand.primary.400": "38ccc2cc05db7ea9e99eda35fd354707495a0cfe", - "brand.primary.500": "d479b864ee86e8411de049e55dbd908afe4ae7f1", - "brand.primary.600": "3995e5d4157b1aeaa9701cb5714ddeb461503f83", - "brand.primary.700": "eec213633fbb0c6d63a98a59d12acf71c624152a", - "brand.primary.800": "d310bdd0df53387a640db959beacfc5d157307a7", - "brand.primary.900": "4a937700819d82f1e1f082e5f230b2812d9cd6f9", - "brand.secondary.100": "a32a0344383475cbd2023cf273aff956643242d1", - "brand.secondary.200": "6ac42a7e62972ab39041eea68710bd9ba25c622e", - "brand.secondary.300": "e5015df164b88ce0f1d922c963d29756f0373fec", - "brand.secondary.400": "898c7ca507941ba9a90135b9f9df79bfb006ab24", - "brand.secondary.500": "64cf58b12d5aeb65bc36c2b5c3f611e4a9cb10c4", - "brand.secondary.600": "9d412892cf80820fc6e7fdb7234580a8551e1112", - "brand.secondary.700": "12c7276781ef624da47484329dd12d30bccf4994", - "brand.secondary.800": "c9888b116e2fa883a51fe9a187952dbfc857c14f", - "brand.secondary.900": "9763647eec7e34fd400ac567e724b69ef8ed161c", - "brand.tertiary.100": "fe3d859f5b7bc074d478fb8a1b8de6454ec4aa78", - "brand.tertiary.200": "3d38368d37ae7ceb1dd81cc3ce7d01db46d080c7", - "brand.tertiary.300": "79cc7aad64074e9d97fb244288e7ac376819b1c4", - "brand.tertiary.400": "8330876aad27733ba10126b766f818e29ece6085", - "brand.tertiary.500": "8c53ad76c588803c2c3ddb5439e1d9c854b392d7", - "brand.tertiary.600": "571575ca17cee47233e899ef40c02b68348707f5", - "brand.tertiary.700": "1572d330e5501e5a1f2ee2010f5c53117ad5ab68", - "brand.tertiary.800": "e651cae9105e716e7d884361f3bf896a50e2d628", - "brand.tertiary.900": "14e1a6aae891ced8841151216cec25d63bedda1f", + "component-mode-height.small": "0b2f3753457a44472f9ab086f5cc2fa154ffa26e", + "component-mode-height.medium": "7a23d75bf57b3f6f038c5bd7b2d50ffe3e19ea24", + "component-mode-height.large": "ee9bf703bf09f764bfe535e5ec0f02f956ab1380", + "component-mode-spacing.small": "faf2a0357d659b2a6c42082be56d7e463ff3d92f", + "component-mode-spacing.medium": "975e5f00e008bd6f1a5330f496bc489b71a5d6fc", + "component-mode-spacing.large": "598bafec3dcda87030f698042875bf07e7812110", + "component-mode-gap.small": "d67d4cc3a0577f04850073ab08bf641d940e2c05", + "component-mode-gap.medium": "c7d623fb1de89532a2ab4b4bfeb3e15e9f70107b", + "component-mode-gap.large": "5f29fbde252e39a188bcfa6d35775216efe0f1e5", + "brand.alt1.100": "4aad3c2d1e9705bdfd285550a9e08950d7ce7c17", + "brand.alt1.200": "b29c57317b25742516666bd260e5bfe5c751164f", + "brand.alt1.300": "88b9cb771cfc628a54a546c7b924528dd0cde449", + "brand.alt1.400": "f9bc97ac5c9470f249fc22c2106ae9cc0e79c96a", + "brand.alt1.500": "e4a075d5ad1ac4c1a91fc3064b9abab52e543b87", + "brand.alt1.600": "e0e5a45e03ef29ed89b590e5c14438191a25a2c4", + "brand.alt1.700": "89ce4f02f32c61f6e48842e7cee289650b27f290", + "brand.alt1.800": "44fd7844e26551a870ffb7a9d50f554d648391bd", + "brand.alt1.900": "a316c90203c239c2727aedccb255e53abb2d2c89", + "brand.alt2.100": "52a17010b7a9ea59231d205c9165ef271894e96d", + "brand.alt2.200": "b80ed7f8c02c73bd0c951e4aa92cf9521aac0e52", + "brand.alt2.300": "2f18fe7a8a2697237825a4b78fb062a00d36e2ba", + "brand.alt2.400": "602f7440f7e436d816f0a69297d81a795f123335", + "brand.alt2.500": "8da24db700818fa2345724afba0e708c10bb0344", + "brand.alt2.600": "3cb486e824b5cd0ddd5cd945e0234bdb2c46ba35", + "brand.alt2.700": "02ee1a451119cf90d88bedb933ffce6cee41913e", + "brand.alt2.800": "afa77811a6432c0ef38fffbeaba36a15862cef20", + "brand.alt2.900": "3ffc5b092459e773b9c551876f7e7655b37f4bbf", + "brand.alt3.100": "86ae2e670ba5b48721b7c545405af49103769e96", + "brand.alt3.200": "4407368e2ce6e3f9351b5f63339b24a0f4cb75d7", + "brand.alt3.300": "dda69b2d21b3622c773c0dcdb9ac69c79ca68530", + "brand.alt3.400": "5c6e30f4339fbeff0a7d3b3a59ccf9f7d9a12163", + "brand.alt3.500": "cca87ae300b4afe35de08b67ba37151550449136", + "brand.alt3.600": "07d10df79bc3bdc1f90feb12853451b8ef2a1012", + "brand.alt3.700": "89e7c552d409c7149d1567bca1b715c70b5b9c03", + "brand.alt3.800": "6043cf9d056f718d8566ffd7f4f8ba4ca4558612", + "brand.alt3.900": "9c008ccc7703add21d2ca7e7ead0e897bc6cfd86", "semantic.surface.primary.light": "3dff5fed1bb86b9a135dc2559c45e9c21f5ddd94", "semantic.surface.primary.light-hover": "0ce4ac0cfd64af0e59fa30c432ad2253ad1d225d", "semantic.surface.primary.light-active": "12d48db064c5a1da3d54a4617714849a886a11b3", @@ -460,6 +454,22 @@ "semantic.surface.tertiary.light-hover": "19f169a88a9ce24aab9e8b17b500413c87e87dbb", "semantic.surface.tertiary.light-active": "ca101124ae0d2aadf85fd8047f08d376128bc17d", "semantic.surface.tertiary.dark": "abfb1593ceec73e5c7c04efceeb4aa849f34acf5", + "semantic.surface.action.brand_alt1.subtle": "569217923b570193583d9f7a71286621a266cdc6", + "semantic.surface.action.brand_alt1.subtle-hover": "d5bd3cc2bda5445411e7ff9c7ea5d37ef06e6717", + "semantic.surface.action.brand_alt1.default": "1ffb00ab4071d58dc3a7ccfb45ed532e1cd1fbde", + "semantic.surface.action.brand_alt1.hover": "9785a59f3686e9ef0b6deeeeaaa5937315c31839", + "semantic.surface.action.brand_alt1.active": "6156619f94df8bc8e14467bb43dadb98f766c59f", + "semantic.surface.action.brand_alt1.no_fill": "65dd4c9cc9c2953c34c1f1db462f80494bc266aa", + "semantic.surface.action.brand_alt1.no_fill-hover": "35985cfb7798c765bd92e687c6c49acbcc9d5a82", + "semantic.surface.action.brand_alt1.no_fill-active": "d6bc35e339798596f743693ccc010f9e7dbb6d1e", + "semantic.surface.action.brand_alt2.subtle": "cb33e0302edc44c5debaf9a974b65527f924abea", + "semantic.surface.action.brand_alt2.subtle-hover": "5d36eac128e74a297e330470d5f4999213227ce2", + "semantic.surface.action.brand_alt2.default": "2ede466ea9f650c1b0811f12fcf7794684cd295a", + "semantic.surface.action.brand_alt2.hover": "5fa19605b405a358ab518fcf76e1b742fe284ec2", + "semantic.surface.action.brand_alt2.active": "652b31b9f7810ef55981ef9dc2f17f37b4a55aa4", + "semantic.surface.action.brand_alt2.no_fill": "8b7de4272c93eca66b67bea465e588a9076b173b", + "semantic.surface.action.brand_alt2.no_fill-hover": "abd75269b771ca8f4b566639647ffb236012c411", + "semantic.surface.action.brand_alt2.no_fill-active": "19fdc12d684d66c4b62ac1730fec93577cb19180", "semantic.border.primary.default": "26d7d78349bdbfff162fea599c03aa6b6dd6b1c4", "semantic.border.primary.hover": "ec54d7ad0f9c8bfe0a02c77af471b3a5c73d2e36", "semantic.border.primary.active": "87442a8b64934289de42a249b154156fbf384284", @@ -469,6 +479,24 @@ "semantic.border.tertiary.default": "09b9bf835501e0713abb2be09a7142195aa911b8", "semantic.border.tertiary.hover": "1e231d7a9fdbb38a9a76df1c75bc29b0c9ba333b", "semantic.border.tertiary.active": "d2e5800d58e5796542422879a28194f1c708ff6f", + "semantic.border.action.brand_alt1.subtle": "ce219465c87404c91dd11d5ec48aa8e26a4b6cda", + "semantic.border.action.brand_alt1.subtle-hover": "8b2ddd14ba0fbe510114535ce53aedc75c8d4f4a", + "semantic.border.action.brand_alt1.default": "240490a7c68f61f179d2f609473656bb6d4d3825", + "semantic.border.action.brand_alt1.hover": "9ff3015a2acad304a869dcff5562f38fd9069ea7", + "semantic.border.action.brand_alt1.active": "0f60f77b98525932bf7c8dbdcc5708b832bfc32e", + "semantic.border.action.brand_alt2.subtle": "48d3ea849f38d906f6e8529ef3eefe82f24a8aaa", + "semantic.border.action.brand_alt2.subtle-hover": "77351e76cdf3461b0e0c951a95b26b6e4418f80f", + "semantic.border.action.brand_alt2.default": "4460485af2d68e6889e24bdccf3af17ed63a4a03", + "semantic.border.action.brand_alt2.hover": "56f6fb7218e555648f7df4d782bbce1b7835f5b8", + "semantic.border.action.brand_alt2.active": "e5af7480690111bbec35b957aecb7670c62d2700", + "semantic.text.action.brand_alt1.default": "d06698428455e574641d941f6bf470503aff6571", + "semantic.text.action.brand_alt1.hover": "1717155c5696e84b5ed991dd27ce70af2c47fdf4", + "semantic.text.action.brand_alt1.active": "7b703d65b372e6af59e2e257b60b7b26fe180764", + "semantic.text.action.brand_alt1.on_action": "8bda1f00f4c40e3315b44bf0d08b63875b985256", + "semantic.text.action.brand_alt2.default": "1d4ec6c36a0e1121fda05c0ce4f95c5d1553e6b7", + "semantic.text.action.brand_alt2.hover": "de47a42e752d8aedcd10b908ed0090a3e0e9ca88", + "semantic.text.action.brand_alt2.active": "c7569ec1056825c1a52b9549611c48637d8c2fea", + "semantic.text.action.brand_alt2.on_action": "663bfa559afd3875a77cb82e602644b6290d72d6", "semantic.background.default": "25860544ea24bfc677bf722b5e20ea3fc631afd8", "semantic.background.subtle": "5055f730eae40b1d8f36c27f4ae6d48fe85add82", "semantic.surface.neutral.default": "94fc7e07e074a3a933e7dbcd45fb6578bb727c8b", @@ -476,24 +504,17 @@ "semantic.surface.neutral.subtle": "072113acf733592a7331b0a60e6a4eeaba3f51f6", "semantic.surface.neutral.subtle-hover": "19eb9af0393a16ae01a48972e77a16efb16eeb21", "semantic.surface.neutral.dark": "18e3ba1f54c2b363135f1498775fb4e96e9074da", + "semantic.surface.neutral.dark-hover": "efcf3d7a4016df005cd2d858ef733ceb8b2d6bca", "semantic.surface.neutral.inverted": "829ca533c51e3313229bc965096af00de00887f3", - "semantic.surface.action.primary.subtle": "4b4fcdea8db61ae0dbc8cfe92e43a14b0bbbd419", - "semantic.surface.action.primary.subtle-hover": "d222e50958a1a181215b0e7c08fab68e531dc72f", - "semantic.surface.action.primary.default": "3224793ea7d4779be7145901373bd958d74449c7", - "semantic.surface.action.primary.hover": "67d3e0a6fe5bffa2b601cf549d677e9dffe91e06", - "semantic.surface.action.primary.active": "45019ba69f93a6704efdf7ad33c9bdf5f5cf17a5", - "semantic.surface.action.primary.no_fill": "f71c5104b0a17c2dbc0b8696f775ce56453e306c", - "semantic.surface.action.primary.no_fill-hover": "c882e6f21b1bd5671cf67931694ecca0e545510c", - "semantic.surface.action.primary.no_fill-active": "49546fbca10893ed632a44065e31464a182fd3e0", - "semantic.surface.action.secondary.subtle": "a8189f9429cf9d9573261606c932d038351dd194", - "semantic.surface.action.secondary.subtle-hover": "849d739cdbcbce5bee9babcdb9a30b7c29f08d0c", - "semantic.surface.action.secondary.default": "289db1f10554ebef6eff1698b18cbf1fdadfb9f9", - "semantic.surface.action.secondary.hover": "270134da72038e940c6259cbf5ae45760ff5ba2b", - "semantic.surface.action.secondary.active": "5b980d8e424956fb9164fe9ba04bb6627c6d4a4b", - "semantic.surface.action.secondary.no_fill": "93001593b13c2f9e232066ed5e218576754f69e9", - "semantic.surface.action.secondary.no_fill-hover": "d33e63d8f3c212ee6a6c98039b49c712cb551f17", - "semantic.surface.action.secondary.no_fill-active": "3d188a0071be6874c09cc10a36b3127da959ac40", - "semantic.surface.action.checked": "a012df3f7f2ce68950a401de91633c3e70a7f6e7", + "semantic.surface.action.common.subtle": "75cc22bd5c6c94a5e5fb23cd164aaec5506a6c4a", + "semantic.surface.action.common.subtle-hover": "f5375de1115faecf98170313fcdaf570e53cd4b6", + "semantic.surface.action.common.default": "cf6d54f74547d2b4abde13a874084446a16c5c96", + "semantic.surface.action.common.hover": "981d112837bf874490151a3666939a023862dccc", + "semantic.surface.action.common.active": "cb0e487a0079d8bf60b587b16f66e2844915a38d", + "semantic.surface.action.common.no_fill": "b2112d2d9f8fd4cb46c992d396f383a2e2867c88", + "semantic.surface.action.common.no_fill-hover": "07e581146cfef97f7992a37fe2c795587484c2d0", + "semantic.surface.action.common.no_fill-active": "4b4db73b559b8b03285458d6fafb6956da4768a3", + "semantic.surface.action.common.checked": "f546d1adf80894cb56e7565edce63d847d909642", "semantic.surface.success.subtle": "4d65f5a3b0724e554432b0f3b4a6f9d8eb32532c", "semantic.surface.success.subtle-hover": "92f493b4e256f985653ddd390827c9bbfbaababc", "semantic.surface.success.default": "af25ae7d2fb04081fc80b7dbf4832443bb4f7d54", @@ -522,17 +543,13 @@ "semantic.surface.on_inverted.no_fill-hover": "95c81a1c06bc82cb1afd51300a27d65e4ff52269", "semantic.surface.on_inverted.no_fill-active": "d3d2ee87d81af7bd2f06ca6bc46c54481f349eea", "semantic.border.info.default": "706d2ddf232b2159e8082ed895ba160ddb3ea807", - "semantic.border.action.primary.subtle": "6bc771b3969e960825b8fedf929a033fbbfc93fa", - "semantic.border.action.primary.subtle-hover": "aa6e077bea51bce391c4657318afede1d0a8ddb4", - "semantic.border.action.primary.default": "2b8f878780a4bb5cbb51fb4616e58cabdbc4d120", - "semantic.border.action.primary.hover": "ac58b4805ceec71060f771b43e856e6d3254710a", - "semantic.border.action.primary.active": "96bcd30fcc6e6109007b33b51614e419509d9b53", - "semantic.border.action.secondary.subtle": "7fb6049ba38729ab4de9b861013950dd05fb1620", - "semantic.border.action.secondary.subtle-hover": "3db6a49ebefd58167a7aa2f6df6a9933eb63b22e", - "semantic.border.action.secondary.default": "1982d70d5d0554312964527b839818103942ad07", - "semantic.border.action.secondary.hover": "5a198e77a279505db0762533275d772d3cdb1137", - "semantic.border.action.secondary.active": "147ad7bee625c87b00c3bf733523396cfcf8aeee", - "semantic.border.action.hover": "ab15b7ba98f93f5349337859d8c4e0a1bb4b64a9", + "semantic.border.action.common.subtle": "2dee87d7622b0260c4b890fb48b45c1282131722", + "semantic.border.action.common.subtle-hover": "409f719b2a8a97d966c328ecacbe29655d02bcad", + "semantic.border.action.common.default": "d8960a64a391a0ff4dba9607c9f02b95ad66ae88", + "semantic.border.action.common.hover": "883575c9a42e0f8960fea191c54531e5cbd02dc0", + "semantic.border.action.common.active": "7440d4fdd3c9c2f2ce66aad11679adb12c4cc4ec", + "semantic.border.action.common.dark": "a35bbd3ec28cf1359467bfbbbc71cf5742119c7f", + "semantic.border.action.common.dark-hover": "7276d1390533d130ee3a9b9757fe7f6e9f696391", "semantic.border.neutral.default": "926cf2c12ee7510e905c5935d04a99c27e780bb6", "semantic.border.neutral.subtle": "61eaf517c6981184009c98e80d58a953ab69422f", "semantic.border.neutral.strong": "5832f6ab88c2f25a74ff6f18d74d8981513ed59f", @@ -559,14 +576,10 @@ "semantic.text.neutral.default": "e084264f5b933e90fcc6a152cc5fffa7244e30d6", "semantic.text.neutral.subtle": "cf105793fbd54f73824598418634362ca60c8e4e", "semantic.text.neutral.on_inverted": "f0ce02d3118b486bc9fb3f61cf841923f89699b4", - "semantic.text.action.primary.default": "2f6d8e179b0fcbdbf61fc138ff9b0c0677fdeaf1", - "semantic.text.action.primary.hover": "c7e534c241ae5410dbe4b9d7b1017a996b0cbe41", - "semantic.text.action.primary.active": "ad4cd4e443a3a69634d59294cacd75e5c5f160c7", - "semantic.text.action.primary.on_action": "72310ee8ad1ba5a19ec023832d9add405e4ab2b5", - "semantic.text.action.secondary.default": "88899d057d7c8584c2b58fbee927af49ce1116d8", - "semantic.text.action.secondary.hover": "e169afc172cc4338acca8783e2885d292e31d885", - "semantic.text.action.secondary.active": "68ec1bce96ec8e116ff96d764587f0c90d48878f", - "semantic.text.action.secondary.on_action": "9a713327fb5fe555ff10a035d4b3431a9bf517a1", + "semantic.text.action.common.default": "495ee8a45ae8e334edf3c1d81656d3ddd0820254", + "semantic.text.action.common.hover": "d7a603cd6efb370dfd7093aa7964676bf0c481ce", + "semantic.text.action.common.active": "648c8be35aea3a3d994767fa225c284fecfe6f9f", + "semantic.text.action.common.on_action": "d3f684d7c3abf080e66c440a70946ee2db7a9177", "semantic.text.warning.default": "372f89db084bb2d76a43a1caa625b89eed667600", "semantic.text.warning.icon_warning": "4d57242be884beb77ede81db3649de6e7158c8c8", "semantic.text.warning.on_warning": "80ace6af38f4f1bde0014e9d3987eae17b3c20b3", @@ -617,8 +630,7 @@ "base_sizing": "9720ca86555bde90493208437a6f5cacd270ee0e", "border_width.default": "b44447ba2e2504923d4903e4eb14954434480085", "border_width.active": "82d06b8c6fdeea622611fa744ff261661a211760", - "border_width.tab_focus": "3ddf887f27c7dff953b8399c667e16448ae252d7", - "semantic.border.action.dark": "0f2c1c18c8204303501a0f6adc9a06b98861299e" + "border_width.tab_focus": "3ddf887f27c7dff953b8399c667e16448ae252d7" }, "group": "Brand" }, @@ -629,38 +641,39 @@ "selectedTokenSets": { "Brand/Altinn": "enabled", "Base/Core": "source", - "Base/Semantic": "enabled" + "Base/Semantic": "enabled", + "Density/Default": "enabled" }, "$figmaCollectionId": "VariableCollectionId:6324:1609", "$figmaModeId": "6324:2", "$figmaVariableReferences": { - "brand.primary.100": "63e5e5b3492f8c2eb6a3bf28c4cdaf30fec110dd", - "brand.primary.200": "057a0b83108d7485acbacebb29af2ee8f628c8e4", - "brand.primary.300": "c1a6210a67e3c9290e972b3127fe73233ad4905d", - "brand.primary.400": "38ccc2cc05db7ea9e99eda35fd354707495a0cfe", - "brand.primary.500": "d479b864ee86e8411de049e55dbd908afe4ae7f1", - "brand.primary.600": "3995e5d4157b1aeaa9701cb5714ddeb461503f83", - "brand.primary.700": "eec213633fbb0c6d63a98a59d12acf71c624152a", - "brand.primary.800": "d310bdd0df53387a640db959beacfc5d157307a7", - "brand.primary.900": "4a937700819d82f1e1f082e5f230b2812d9cd6f9", - "brand.secondary.100": "a32a0344383475cbd2023cf273aff956643242d1", - "brand.secondary.200": "6ac42a7e62972ab39041eea68710bd9ba25c622e", - "brand.secondary.300": "e5015df164b88ce0f1d922c963d29756f0373fec", - "brand.secondary.400": "898c7ca507941ba9a90135b9f9df79bfb006ab24", - "brand.secondary.500": "64cf58b12d5aeb65bc36c2b5c3f611e4a9cb10c4", - "brand.secondary.600": "9d412892cf80820fc6e7fdb7234580a8551e1112", - "brand.secondary.700": "12c7276781ef624da47484329dd12d30bccf4994", - "brand.secondary.800": "c9888b116e2fa883a51fe9a187952dbfc857c14f", - "brand.secondary.900": "9763647eec7e34fd400ac567e724b69ef8ed161c", - "brand.tertiary.100": "fe3d859f5b7bc074d478fb8a1b8de6454ec4aa78", - "brand.tertiary.200": "3d38368d37ae7ceb1dd81cc3ce7d01db46d080c7", - "brand.tertiary.300": "79cc7aad64074e9d97fb244288e7ac376819b1c4", - "brand.tertiary.400": "8330876aad27733ba10126b766f818e29ece6085", - "brand.tertiary.500": "8c53ad76c588803c2c3ddb5439e1d9c854b392d7", - "brand.tertiary.600": "571575ca17cee47233e899ef40c02b68348707f5", - "brand.tertiary.700": "1572d330e5501e5a1f2ee2010f5c53117ad5ab68", - "brand.tertiary.800": "e651cae9105e716e7d884361f3bf896a50e2d628", - "brand.tertiary.900": "14e1a6aae891ced8841151216cec25d63bedda1f", + "brand.alt1.100": "4aad3c2d1e9705bdfd285550a9e08950d7ce7c17", + "brand.alt1.200": "b29c57317b25742516666bd260e5bfe5c751164f", + "brand.alt1.300": "88b9cb771cfc628a54a546c7b924528dd0cde449", + "brand.alt1.400": "f9bc97ac5c9470f249fc22c2106ae9cc0e79c96a", + "brand.alt1.500": "e4a075d5ad1ac4c1a91fc3064b9abab52e543b87", + "brand.alt1.600": "e0e5a45e03ef29ed89b590e5c14438191a25a2c4", + "brand.alt1.700": "89ce4f02f32c61f6e48842e7cee289650b27f290", + "brand.alt1.800": "44fd7844e26551a870ffb7a9d50f554d648391bd", + "brand.alt1.900": "a316c90203c239c2727aedccb255e53abb2d2c89", + "brand.alt2.100": "52a17010b7a9ea59231d205c9165ef271894e96d", + "brand.alt2.200": "b80ed7f8c02c73bd0c951e4aa92cf9521aac0e52", + "brand.alt2.300": "2f18fe7a8a2697237825a4b78fb062a00d36e2ba", + "brand.alt2.400": "602f7440f7e436d816f0a69297d81a795f123335", + "brand.alt2.500": "8da24db700818fa2345724afba0e708c10bb0344", + "brand.alt2.600": "3cb486e824b5cd0ddd5cd945e0234bdb2c46ba35", + "brand.alt2.700": "02ee1a451119cf90d88bedb933ffce6cee41913e", + "brand.alt2.800": "afa77811a6432c0ef38fffbeaba36a15862cef20", + "brand.alt2.900": "3ffc5b092459e773b9c551876f7e7655b37f4bbf", + "brand.alt3.100": "86ae2e670ba5b48721b7c545405af49103769e96", + "brand.alt3.200": "4407368e2ce6e3f9351b5f63339b24a0f4cb75d7", + "brand.alt3.300": "dda69b2d21b3622c773c0dcdb9ac69c79ca68530", + "brand.alt3.400": "5c6e30f4339fbeff0a7d3b3a59ccf9f7d9a12163", + "brand.alt3.500": "cca87ae300b4afe35de08b67ba37151550449136", + "brand.alt3.600": "07d10df79bc3bdc1f90feb12853451b8ef2a1012", + "brand.alt3.700": "89e7c552d409c7149d1567bca1b715c70b5b9c03", + "brand.alt3.800": "6043cf9d056f718d8566ffd7f4f8ba4ca4558612", + "brand.alt3.900": "9c008ccc7703add21d2ca7e7ead0e897bc6cfd86", "semantic.surface.primary.light": "3dff5fed1bb86b9a135dc2559c45e9c21f5ddd94", "semantic.surface.primary.light-hover": "0ce4ac0cfd64af0e59fa30c432ad2253ad1d225d", "semantic.surface.primary.light-active": "12d48db064c5a1da3d54a4617714849a886a11b3", @@ -673,6 +686,22 @@ "semantic.surface.tertiary.light-hover": "19f169a88a9ce24aab9e8b17b500413c87e87dbb", "semantic.surface.tertiary.light-active": "ca101124ae0d2aadf85fd8047f08d376128bc17d", "semantic.surface.tertiary.dark": "abfb1593ceec73e5c7c04efceeb4aa849f34acf5", + "semantic.surface.action.brand_alt1.subtle": "569217923b570193583d9f7a71286621a266cdc6", + "semantic.surface.action.brand_alt1.subtle-hover": "d5bd3cc2bda5445411e7ff9c7ea5d37ef06e6717", + "semantic.surface.action.brand_alt1.default": "1ffb00ab4071d58dc3a7ccfb45ed532e1cd1fbde", + "semantic.surface.action.brand_alt1.hover": "9785a59f3686e9ef0b6deeeeaaa5937315c31839", + "semantic.surface.action.brand_alt1.active": "6156619f94df8bc8e14467bb43dadb98f766c59f", + "semantic.surface.action.brand_alt1.no_fill": "65dd4c9cc9c2953c34c1f1db462f80494bc266aa", + "semantic.surface.action.brand_alt1.no_fill-hover": "35985cfb7798c765bd92e687c6c49acbcc9d5a82", + "semantic.surface.action.brand_alt1.no_fill-active": "d6bc35e339798596f743693ccc010f9e7dbb6d1e", + "semantic.surface.action.brand_alt2.subtle": "cb33e0302edc44c5debaf9a974b65527f924abea", + "semantic.surface.action.brand_alt2.subtle-hover": "5d36eac128e74a297e330470d5f4999213227ce2", + "semantic.surface.action.brand_alt2.default": "2ede466ea9f650c1b0811f12fcf7794684cd295a", + "semantic.surface.action.brand_alt2.hover": "5fa19605b405a358ab518fcf76e1b742fe284ec2", + "semantic.surface.action.brand_alt2.active": "652b31b9f7810ef55981ef9dc2f17f37b4a55aa4", + "semantic.surface.action.brand_alt2.no_fill": "8b7de4272c93eca66b67bea465e588a9076b173b", + "semantic.surface.action.brand_alt2.no_fill-hover": "abd75269b771ca8f4b566639647ffb236012c411", + "semantic.surface.action.brand_alt2.no_fill-active": "19fdc12d684d66c4b62ac1730fec93577cb19180", "semantic.border.primary.default": "26d7d78349bdbfff162fea599c03aa6b6dd6b1c4", "semantic.border.primary.hover": "ec54d7ad0f9c8bfe0a02c77af471b3a5c73d2e36", "semantic.border.primary.active": "87442a8b64934289de42a249b154156fbf384284", @@ -682,6 +711,24 @@ "semantic.border.tertiary.default": "09b9bf835501e0713abb2be09a7142195aa911b8", "semantic.border.tertiary.hover": "1e231d7a9fdbb38a9a76df1c75bc29b0c9ba333b", "semantic.border.tertiary.active": "d2e5800d58e5796542422879a28194f1c708ff6f", + "semantic.border.action.brand_alt1.subtle": "ce219465c87404c91dd11d5ec48aa8e26a4b6cda", + "semantic.border.action.brand_alt1.subtle-hover": "8b2ddd14ba0fbe510114535ce53aedc75c8d4f4a", + "semantic.border.action.brand_alt1.default": "240490a7c68f61f179d2f609473656bb6d4d3825", + "semantic.border.action.brand_alt1.hover": "9ff3015a2acad304a869dcff5562f38fd9069ea7", + "semantic.border.action.brand_alt1.active": "0f60f77b98525932bf7c8dbdcc5708b832bfc32e", + "semantic.text.action.brand_alt1.default": "d06698428455e574641d941f6bf470503aff6571", + "semantic.text.action.brand_alt1.hover": "1717155c5696e84b5ed991dd27ce70af2c47fdf4", + "semantic.text.action.brand_alt1.active": "7b703d65b372e6af59e2e257b60b7b26fe180764", + "semantic.text.action.brand_alt1.on_action": "8bda1f00f4c40e3315b44bf0d08b63875b985256", + "semantic.text.action.brand_alt2.default": "1d4ec6c36a0e1121fda05c0ce4f95c5d1553e6b7", + "semantic.text.action.brand_alt2.hover": "de47a42e752d8aedcd10b908ed0090a3e0e9ca88", + "semantic.text.action.brand_alt2.active": "c7569ec1056825c1a52b9549611c48637d8c2fea", + "semantic.text.action.brand_alt2.on_action": "663bfa559afd3875a77cb82e602644b6290d72d6", + "semantic.border.action.brand_alt2.subtle": "48d3ea849f38d906f6e8529ef3eefe82f24a8aaa", + "semantic.border.action.brand_alt2.subtle-hover": "77351e76cdf3461b0e0c951a95b26b6e4418f80f", + "semantic.border.action.brand_alt2.default": "4460485af2d68e6889e24bdccf3af17ed63a4a03", + "semantic.border.action.brand_alt2.hover": "56f6fb7218e555648f7df4d782bbce1b7835f5b8", + "semantic.border.action.brand_alt2.active": "e5af7480690111bbec35b957aecb7670c62d2700", "semantic.background.default": "25860544ea24bfc677bf722b5e20ea3fc631afd8", "semantic.background.subtle": "5055f730eae40b1d8f36c27f4ae6d48fe85add82", "semantic.surface.neutral.default": "94fc7e07e074a3a933e7dbcd45fb6578bb727c8b", @@ -689,24 +736,17 @@ "semantic.surface.neutral.subtle": "072113acf733592a7331b0a60e6a4eeaba3f51f6", "semantic.surface.neutral.subtle-hover": "19eb9af0393a16ae01a48972e77a16efb16eeb21", "semantic.surface.neutral.dark": "18e3ba1f54c2b363135f1498775fb4e96e9074da", + "semantic.surface.neutral.dark-hover": "efcf3d7a4016df005cd2d858ef733ceb8b2d6bca", "semantic.surface.neutral.inverted": "829ca533c51e3313229bc965096af00de00887f3", - "semantic.surface.action.primary.subtle": "4b4fcdea8db61ae0dbc8cfe92e43a14b0bbbd419", - "semantic.surface.action.primary.subtle-hover": "d222e50958a1a181215b0e7c08fab68e531dc72f", - "semantic.surface.action.primary.default": "3224793ea7d4779be7145901373bd958d74449c7", - "semantic.surface.action.primary.hover": "67d3e0a6fe5bffa2b601cf549d677e9dffe91e06", - "semantic.surface.action.primary.active": "45019ba69f93a6704efdf7ad33c9bdf5f5cf17a5", - "semantic.surface.action.primary.no_fill": "f71c5104b0a17c2dbc0b8696f775ce56453e306c", - "semantic.surface.action.primary.no_fill-hover": "c882e6f21b1bd5671cf67931694ecca0e545510c", - "semantic.surface.action.primary.no_fill-active": "49546fbca10893ed632a44065e31464a182fd3e0", - "semantic.surface.action.secondary.subtle": "a8189f9429cf9d9573261606c932d038351dd194", - "semantic.surface.action.secondary.subtle-hover": "849d739cdbcbce5bee9babcdb9a30b7c29f08d0c", - "semantic.surface.action.secondary.default": "289db1f10554ebef6eff1698b18cbf1fdadfb9f9", - "semantic.surface.action.secondary.hover": "270134da72038e940c6259cbf5ae45760ff5ba2b", - "semantic.surface.action.secondary.active": "5b980d8e424956fb9164fe9ba04bb6627c6d4a4b", - "semantic.surface.action.secondary.no_fill": "93001593b13c2f9e232066ed5e218576754f69e9", - "semantic.surface.action.secondary.no_fill-hover": "d33e63d8f3c212ee6a6c98039b49c712cb551f17", - "semantic.surface.action.secondary.no_fill-active": "3d188a0071be6874c09cc10a36b3127da959ac40", - "semantic.surface.action.checked": "a012df3f7f2ce68950a401de91633c3e70a7f6e7", + "semantic.surface.action.common.subtle": "75cc22bd5c6c94a5e5fb23cd164aaec5506a6c4a", + "semantic.surface.action.common.subtle-hover": "f5375de1115faecf98170313fcdaf570e53cd4b6", + "semantic.surface.action.common.default": "cf6d54f74547d2b4abde13a874084446a16c5c96", + "semantic.surface.action.common.hover": "981d112837bf874490151a3666939a023862dccc", + "semantic.surface.action.common.active": "cb0e487a0079d8bf60b587b16f66e2844915a38d", + "semantic.surface.action.common.no_fill": "b2112d2d9f8fd4cb46c992d396f383a2e2867c88", + "semantic.surface.action.common.no_fill-hover": "07e581146cfef97f7992a37fe2c795587484c2d0", + "semantic.surface.action.common.no_fill-active": "4b4db73b559b8b03285458d6fafb6956da4768a3", + "semantic.surface.action.common.checked": "f546d1adf80894cb56e7565edce63d847d909642", "semantic.surface.success.subtle": "4d65f5a3b0724e554432b0f3b4a6f9d8eb32532c", "semantic.surface.success.subtle-hover": "92f493b4e256f985653ddd390827c9bbfbaababc", "semantic.surface.success.default": "af25ae7d2fb04081fc80b7dbf4832443bb4f7d54", @@ -735,17 +775,13 @@ "semantic.surface.on_inverted.no_fill-hover": "95c81a1c06bc82cb1afd51300a27d65e4ff52269", "semantic.surface.on_inverted.no_fill-active": "d3d2ee87d81af7bd2f06ca6bc46c54481f349eea", "semantic.border.info.default": "706d2ddf232b2159e8082ed895ba160ddb3ea807", - "semantic.border.action.primary.subtle": "6bc771b3969e960825b8fedf929a033fbbfc93fa", - "semantic.border.action.primary.subtle-hover": "aa6e077bea51bce391c4657318afede1d0a8ddb4", - "semantic.border.action.primary.default": "2b8f878780a4bb5cbb51fb4616e58cabdbc4d120", - "semantic.border.action.primary.hover": "ac58b4805ceec71060f771b43e856e6d3254710a", - "semantic.border.action.primary.active": "96bcd30fcc6e6109007b33b51614e419509d9b53", - "semantic.border.action.secondary.subtle": "7fb6049ba38729ab4de9b861013950dd05fb1620", - "semantic.border.action.secondary.subtle-hover": "3db6a49ebefd58167a7aa2f6df6a9933eb63b22e", - "semantic.border.action.secondary.default": "1982d70d5d0554312964527b839818103942ad07", - "semantic.border.action.secondary.hover": "5a198e77a279505db0762533275d772d3cdb1137", - "semantic.border.action.secondary.active": "147ad7bee625c87b00c3bf733523396cfcf8aeee", - "semantic.border.action.hover": "ab15b7ba98f93f5349337859d8c4e0a1bb4b64a9", + "semantic.border.action.common.subtle": "2dee87d7622b0260c4b890fb48b45c1282131722", + "semantic.border.action.common.subtle-hover": "409f719b2a8a97d966c328ecacbe29655d02bcad", + "semantic.border.action.common.default": "d8960a64a391a0ff4dba9607c9f02b95ad66ae88", + "semantic.border.action.common.hover": "883575c9a42e0f8960fea191c54531e5cbd02dc0", + "semantic.border.action.common.active": "7440d4fdd3c9c2f2ce66aad11679adb12c4cc4ec", + "semantic.border.action.common.dark": "a35bbd3ec28cf1359467bfbbbc71cf5742119c7f", + "semantic.border.action.common.dark-hover": "7276d1390533d130ee3a9b9757fe7f6e9f696391", "semantic.border.neutral.default": "926cf2c12ee7510e905c5935d04a99c27e780bb6", "semantic.border.neutral.subtle": "61eaf517c6981184009c98e80d58a953ab69422f", "semantic.border.neutral.strong": "5832f6ab88c2f25a74ff6f18d74d8981513ed59f", @@ -772,14 +808,10 @@ "semantic.text.neutral.default": "e084264f5b933e90fcc6a152cc5fffa7244e30d6", "semantic.text.neutral.subtle": "cf105793fbd54f73824598418634362ca60c8e4e", "semantic.text.neutral.on_inverted": "f0ce02d3118b486bc9fb3f61cf841923f89699b4", - "semantic.text.action.primary.default": "2f6d8e179b0fcbdbf61fc138ff9b0c0677fdeaf1", - "semantic.text.action.primary.hover": "c7e534c241ae5410dbe4b9d7b1017a996b0cbe41", - "semantic.text.action.primary.active": "ad4cd4e443a3a69634d59294cacd75e5c5f160c7", - "semantic.text.action.primary.on_action": "72310ee8ad1ba5a19ec023832d9add405e4ab2b5", - "semantic.text.action.secondary.default": "88899d057d7c8584c2b58fbee927af49ce1116d8", - "semantic.text.action.secondary.hover": "e169afc172cc4338acca8783e2885d292e31d885", - "semantic.text.action.secondary.active": "68ec1bce96ec8e116ff96d764587f0c90d48878f", - "semantic.text.action.secondary.on_action": "9a713327fb5fe555ff10a035d4b3431a9bf517a1", + "semantic.text.action.common.default": "495ee8a45ae8e334edf3c1d81656d3ddd0820254", + "semantic.text.action.common.hover": "d7a603cd6efb370dfd7093aa7964676bf0c481ce", + "semantic.text.action.common.active": "648c8be35aea3a3d994767fa225c284fecfe6f9f", + "semantic.text.action.common.on_action": "d3f684d7c3abf080e66c440a70946ee2db7a9177", "semantic.text.warning.default": "372f89db084bb2d76a43a1caa625b89eed667600", "semantic.text.warning.icon_warning": "4d57242be884beb77ede81db3649de6e7158c8c8", "semantic.text.warning.on_warning": "80ace6af38f4f1bde0014e9d3987eae17b3c20b3", @@ -830,8 +862,7 @@ "base_sizing": "9720ca86555bde90493208437a6f5cacd270ee0e", "border_width.default": "b44447ba2e2504923d4903e4eb14954434480085", "border_width.active": "82d06b8c6fdeea622611fa744ff261661a211760", - "border_width.tab_focus": "3ddf887f27c7dff953b8399c667e16448ae252d7", - "semantic.border.action.dark": "0f2c1c18c8204303501a0f6adc9a06b98861299e" + "border_width.tab_focus": "3ddf887f27c7dff953b8399c667e16448ae252d7" }, "group": "Brand" }, @@ -841,45 +872,40 @@ "selectedTokenSets": { "Brand/Tilsynet": "enabled", "Base/Core": "source", - "Base/Semantic": "enabled" + "Base/Semantic": "enabled", + "Density/Default": "enabled" }, "$figmaStyleReferences": {}, "$figmaCollectionId": "VariableCollectionId:6324:1609", "$figmaModeId": "6324:3", "$figmaVariableReferences": { - "brand.primary.100": "63e5e5b3492f8c2eb6a3bf28c4cdaf30fec110dd", - "brand.primary.200": "057a0b83108d7485acbacebb29af2ee8f628c8e4", - "brand.primary.300": "c1a6210a67e3c9290e972b3127fe73233ad4905d", - "brand.primary.400": "38ccc2cc05db7ea9e99eda35fd354707495a0cfe", - "brand.primary.500": "d479b864ee86e8411de049e55dbd908afe4ae7f1", - "brand.primary.600": "3995e5d4157b1aeaa9701cb5714ddeb461503f83", - "brand.primary.700": "eec213633fbb0c6d63a98a59d12acf71c624152a", - "brand.primary.800": "d310bdd0df53387a640db959beacfc5d157307a7", - "brand.primary.900": "4a937700819d82f1e1f082e5f230b2812d9cd6f9", - "brand.secondary.100": "a32a0344383475cbd2023cf273aff956643242d1", - "brand.secondary.200": "6ac42a7e62972ab39041eea68710bd9ba25c622e", - "brand.secondary.300": "e5015df164b88ce0f1d922c963d29756f0373fec", - "brand.secondary.400": "898c7ca507941ba9a90135b9f9df79bfb006ab24", - "brand.secondary.500": "64cf58b12d5aeb65bc36c2b5c3f611e4a9cb10c4", - "brand.secondary.600": "9d412892cf80820fc6e7fdb7234580a8551e1112", - "brand.secondary.700": "12c7276781ef624da47484329dd12d30bccf4994", - "brand.secondary.800": "c9888b116e2fa883a51fe9a187952dbfc857c14f", - "brand.secondary.900": "9763647eec7e34fd400ac567e724b69ef8ed161c", - "brand.tertiary.100": "fe3d859f5b7bc074d478fb8a1b8de6454ec4aa78", - "brand.tertiary.200": "3d38368d37ae7ceb1dd81cc3ce7d01db46d080c7", - "brand.tertiary.300": "79cc7aad64074e9d97fb244288e7ac376819b1c4", - "brand.tertiary.400": "8330876aad27733ba10126b766f818e29ece6085", - "brand.tertiary.500": "8c53ad76c588803c2c3ddb5439e1d9c854b392d7", - "brand.tertiary.600": "571575ca17cee47233e899ef40c02b68348707f5", - "brand.tertiary.700": "1572d330e5501e5a1f2ee2010f5c53117ad5ab68", - "brand.tertiary.800": "e651cae9105e716e7d884361f3bf896a50e2d628", - "brand.tertiary.900": "14e1a6aae891ced8841151216cec25d63bedda1f", - "semantic.surface.action.primary.default": "3224793ea7d4779be7145901373bd958d74449c7", - "semantic.surface.action.primary.hover": "67d3e0a6fe5bffa2b601cf549d677e9dffe91e06", - "semantic.surface.action.primary.active": "45019ba69f93a6704efdf7ad33c9bdf5f5cf17a5", - "semantic.surface.action.secondary.default": "289db1f10554ebef6eff1698b18cbf1fdadfb9f9", - "semantic.surface.action.secondary.hover": "270134da72038e940c6259cbf5ae45760ff5ba2b", - "semantic.surface.action.secondary.active": "5b980d8e424956fb9164fe9ba04bb6627c6d4a4b", + "brand.alt1.100": "4aad3c2d1e9705bdfd285550a9e08950d7ce7c17", + "brand.alt1.200": "b29c57317b25742516666bd260e5bfe5c751164f", + "brand.alt1.300": "88b9cb771cfc628a54a546c7b924528dd0cde449", + "brand.alt1.400": "f9bc97ac5c9470f249fc22c2106ae9cc0e79c96a", + "brand.alt1.500": "e4a075d5ad1ac4c1a91fc3064b9abab52e543b87", + "brand.alt1.600": "e0e5a45e03ef29ed89b590e5c14438191a25a2c4", + "brand.alt1.700": "89ce4f02f32c61f6e48842e7cee289650b27f290", + "brand.alt1.800": "44fd7844e26551a870ffb7a9d50f554d648391bd", + "brand.alt1.900": "a316c90203c239c2727aedccb255e53abb2d2c89", + "brand.alt2.100": "52a17010b7a9ea59231d205c9165ef271894e96d", + "brand.alt2.200": "b80ed7f8c02c73bd0c951e4aa92cf9521aac0e52", + "brand.alt2.300": "2f18fe7a8a2697237825a4b78fb062a00d36e2ba", + "brand.alt2.400": "602f7440f7e436d816f0a69297d81a795f123335", + "brand.alt2.500": "8da24db700818fa2345724afba0e708c10bb0344", + "brand.alt2.600": "3cb486e824b5cd0ddd5cd945e0234bdb2c46ba35", + "brand.alt2.700": "02ee1a451119cf90d88bedb933ffce6cee41913e", + "brand.alt2.800": "afa77811a6432c0ef38fffbeaba36a15862cef20", + "brand.alt2.900": "3ffc5b092459e773b9c551876f7e7655b37f4bbf", + "brand.alt3.100": "86ae2e670ba5b48721b7c545405af49103769e96", + "brand.alt3.200": "4407368e2ce6e3f9351b5f63339b24a0f4cb75d7", + "brand.alt3.300": "dda69b2d21b3622c773c0dcdb9ac69c79ca68530", + "brand.alt3.400": "5c6e30f4339fbeff0a7d3b3a59ccf9f7d9a12163", + "brand.alt3.500": "cca87ae300b4afe35de08b67ba37151550449136", + "brand.alt3.600": "07d10df79bc3bdc1f90feb12853451b8ef2a1012", + "brand.alt3.700": "89e7c552d409c7149d1567bca1b715c70b5b9c03", + "brand.alt3.800": "6043cf9d056f718d8566ffd7f4f8ba4ca4558612", + "brand.alt3.900": "9c008ccc7703add21d2ca7e7ead0e897bc6cfd86", "semantic.surface.primary.light": "3dff5fed1bb86b9a135dc2559c45e9c21f5ddd94", "semantic.surface.primary.light-hover": "0ce4ac0cfd64af0e59fa30c432ad2253ad1d225d", "semantic.surface.primary.light-active": "12d48db064c5a1da3d54a4617714849a886a11b3", @@ -892,6 +918,22 @@ "semantic.surface.tertiary.light-hover": "19f169a88a9ce24aab9e8b17b500413c87e87dbb", "semantic.surface.tertiary.light-active": "ca101124ae0d2aadf85fd8047f08d376128bc17d", "semantic.surface.tertiary.dark": "abfb1593ceec73e5c7c04efceeb4aa849f34acf5", + "semantic.surface.action.brand_alt1.subtle": "569217923b570193583d9f7a71286621a266cdc6", + "semantic.surface.action.brand_alt1.subtle-hover": "d5bd3cc2bda5445411e7ff9c7ea5d37ef06e6717", + "semantic.surface.action.brand_alt1.default": "1ffb00ab4071d58dc3a7ccfb45ed532e1cd1fbde", + "semantic.surface.action.brand_alt1.hover": "9785a59f3686e9ef0b6deeeeaaa5937315c31839", + "semantic.surface.action.brand_alt1.active": "6156619f94df8bc8e14467bb43dadb98f766c59f", + "semantic.surface.action.brand_alt1.no_fill": "65dd4c9cc9c2953c34c1f1db462f80494bc266aa", + "semantic.surface.action.brand_alt1.no_fill-hover": "35985cfb7798c765bd92e687c6c49acbcc9d5a82", + "semantic.surface.action.brand_alt1.no_fill-active": "d6bc35e339798596f743693ccc010f9e7dbb6d1e", + "semantic.surface.action.brand_alt2.subtle": "cb33e0302edc44c5debaf9a974b65527f924abea", + "semantic.surface.action.brand_alt2.subtle-hover": "5d36eac128e74a297e330470d5f4999213227ce2", + "semantic.surface.action.brand_alt2.default": "2ede466ea9f650c1b0811f12fcf7794684cd295a", + "semantic.surface.action.brand_alt2.hover": "5fa19605b405a358ab518fcf76e1b742fe284ec2", + "semantic.surface.action.brand_alt2.active": "652b31b9f7810ef55981ef9dc2f17f37b4a55aa4", + "semantic.surface.action.brand_alt2.no_fill": "8b7de4272c93eca66b67bea465e588a9076b173b", + "semantic.surface.action.brand_alt2.no_fill-hover": "abd75269b771ca8f4b566639647ffb236012c411", + "semantic.surface.action.brand_alt2.no_fill-active": "19fdc12d684d66c4b62ac1730fec93577cb19180", "semantic.border.primary.default": "26d7d78349bdbfff162fea599c03aa6b6dd6b1c4", "semantic.border.primary.hover": "ec54d7ad0f9c8bfe0a02c77af471b3a5c73d2e36", "semantic.border.primary.active": "87442a8b64934289de42a249b154156fbf384284", @@ -901,6 +943,24 @@ "semantic.border.tertiary.default": "09b9bf835501e0713abb2be09a7142195aa911b8", "semantic.border.tertiary.hover": "1e231d7a9fdbb38a9a76df1c75bc29b0c9ba333b", "semantic.border.tertiary.active": "d2e5800d58e5796542422879a28194f1c708ff6f", + "semantic.border.action.brand_alt1.subtle": "ce219465c87404c91dd11d5ec48aa8e26a4b6cda", + "semantic.border.action.brand_alt1.subtle-hover": "8b2ddd14ba0fbe510114535ce53aedc75c8d4f4a", + "semantic.border.action.brand_alt1.default": "240490a7c68f61f179d2f609473656bb6d4d3825", + "semantic.border.action.brand_alt1.hover": "9ff3015a2acad304a869dcff5562f38fd9069ea7", + "semantic.border.action.brand_alt1.active": "0f60f77b98525932bf7c8dbdcc5708b832bfc32e", + "semantic.border.action.brand_alt2.subtle": "48d3ea849f38d906f6e8529ef3eefe82f24a8aaa", + "semantic.border.action.brand_alt2.subtle-hover": "77351e76cdf3461b0e0c951a95b26b6e4418f80f", + "semantic.border.action.brand_alt2.default": "4460485af2d68e6889e24bdccf3af17ed63a4a03", + "semantic.border.action.brand_alt2.hover": "56f6fb7218e555648f7df4d782bbce1b7835f5b8", + "semantic.border.action.brand_alt2.active": "e5af7480690111bbec35b957aecb7670c62d2700", + "semantic.text.action.brand_alt1.default": "d06698428455e574641d941f6bf470503aff6571", + "semantic.text.action.brand_alt1.hover": "1717155c5696e84b5ed991dd27ce70af2c47fdf4", + "semantic.text.action.brand_alt1.active": "7b703d65b372e6af59e2e257b60b7b26fe180764", + "semantic.text.action.brand_alt1.on_action": "8bda1f00f4c40e3315b44bf0d08b63875b985256", + "semantic.text.action.brand_alt2.default": "1d4ec6c36a0e1121fda05c0ce4f95c5d1553e6b7", + "semantic.text.action.brand_alt2.hover": "de47a42e752d8aedcd10b908ed0090a3e0e9ca88", + "semantic.text.action.brand_alt2.active": "c7569ec1056825c1a52b9549611c48637d8c2fea", + "semantic.text.action.brand_alt2.on_action": "663bfa559afd3875a77cb82e602644b6290d72d6", "semantic.background.default": "25860544ea24bfc677bf722b5e20ea3fc631afd8", "semantic.background.subtle": "5055f730eae40b1d8f36c27f4ae6d48fe85add82", "semantic.surface.neutral.default": "94fc7e07e074a3a933e7dbcd45fb6578bb727c8b", @@ -908,18 +968,17 @@ "semantic.surface.neutral.subtle": "072113acf733592a7331b0a60e6a4eeaba3f51f6", "semantic.surface.neutral.subtle-hover": "19eb9af0393a16ae01a48972e77a16efb16eeb21", "semantic.surface.neutral.dark": "18e3ba1f54c2b363135f1498775fb4e96e9074da", + "semantic.surface.neutral.dark-hover": "efcf3d7a4016df005cd2d858ef733ceb8b2d6bca", "semantic.surface.neutral.inverted": "829ca533c51e3313229bc965096af00de00887f3", - "semantic.surface.action.primary.subtle": "4b4fcdea8db61ae0dbc8cfe92e43a14b0bbbd419", - "semantic.surface.action.primary.subtle-hover": "d222e50958a1a181215b0e7c08fab68e531dc72f", - "semantic.surface.action.primary.no_fill": "f71c5104b0a17c2dbc0b8696f775ce56453e306c", - "semantic.surface.action.primary.no_fill-hover": "c882e6f21b1bd5671cf67931694ecca0e545510c", - "semantic.surface.action.primary.no_fill-active": "49546fbca10893ed632a44065e31464a182fd3e0", - "semantic.surface.action.secondary.subtle": "a8189f9429cf9d9573261606c932d038351dd194", - "semantic.surface.action.secondary.subtle-hover": "849d739cdbcbce5bee9babcdb9a30b7c29f08d0c", - "semantic.surface.action.secondary.no_fill": "93001593b13c2f9e232066ed5e218576754f69e9", - "semantic.surface.action.secondary.no_fill-hover": "d33e63d8f3c212ee6a6c98039b49c712cb551f17", - "semantic.surface.action.secondary.no_fill-active": "3d188a0071be6874c09cc10a36b3127da959ac40", - "semantic.surface.action.checked": "a012df3f7f2ce68950a401de91633c3e70a7f6e7", + "semantic.surface.action.common.subtle": "75cc22bd5c6c94a5e5fb23cd164aaec5506a6c4a", + "semantic.surface.action.common.subtle-hover": "f5375de1115faecf98170313fcdaf570e53cd4b6", + "semantic.surface.action.common.default": "cf6d54f74547d2b4abde13a874084446a16c5c96", + "semantic.surface.action.common.hover": "981d112837bf874490151a3666939a023862dccc", + "semantic.surface.action.common.active": "cb0e487a0079d8bf60b587b16f66e2844915a38d", + "semantic.surface.action.common.no_fill": "b2112d2d9f8fd4cb46c992d396f383a2e2867c88", + "semantic.surface.action.common.no_fill-hover": "07e581146cfef97f7992a37fe2c795587484c2d0", + "semantic.surface.action.common.no_fill-active": "4b4db73b559b8b03285458d6fafb6956da4768a3", + "semantic.surface.action.common.checked": "f546d1adf80894cb56e7565edce63d847d909642", "semantic.surface.success.subtle": "4d65f5a3b0724e554432b0f3b4a6f9d8eb32532c", "semantic.surface.success.subtle-hover": "92f493b4e256f985653ddd390827c9bbfbaababc", "semantic.surface.success.default": "af25ae7d2fb04081fc80b7dbf4832443bb4f7d54", @@ -948,17 +1007,13 @@ "semantic.surface.on_inverted.no_fill-hover": "95c81a1c06bc82cb1afd51300a27d65e4ff52269", "semantic.surface.on_inverted.no_fill-active": "d3d2ee87d81af7bd2f06ca6bc46c54481f349eea", "semantic.border.info.default": "706d2ddf232b2159e8082ed895ba160ddb3ea807", - "semantic.border.action.primary.subtle": "6bc771b3969e960825b8fedf929a033fbbfc93fa", - "semantic.border.action.primary.subtle-hover": "aa6e077bea51bce391c4657318afede1d0a8ddb4", - "semantic.border.action.primary.default": "2b8f878780a4bb5cbb51fb4616e58cabdbc4d120", - "semantic.border.action.primary.hover": "ac58b4805ceec71060f771b43e856e6d3254710a", - "semantic.border.action.primary.active": "96bcd30fcc6e6109007b33b51614e419509d9b53", - "semantic.border.action.secondary.subtle": "7fb6049ba38729ab4de9b861013950dd05fb1620", - "semantic.border.action.secondary.subtle-hover": "3db6a49ebefd58167a7aa2f6df6a9933eb63b22e", - "semantic.border.action.secondary.default": "1982d70d5d0554312964527b839818103942ad07", - "semantic.border.action.secondary.hover": "5a198e77a279505db0762533275d772d3cdb1137", - "semantic.border.action.secondary.active": "147ad7bee625c87b00c3bf733523396cfcf8aeee", - "semantic.border.action.hover": "ab15b7ba98f93f5349337859d8c4e0a1bb4b64a9", + "semantic.border.action.common.subtle": "2dee87d7622b0260c4b890fb48b45c1282131722", + "semantic.border.action.common.subtle-hover": "409f719b2a8a97d966c328ecacbe29655d02bcad", + "semantic.border.action.common.default": "d8960a64a391a0ff4dba9607c9f02b95ad66ae88", + "semantic.border.action.common.hover": "883575c9a42e0f8960fea191c54531e5cbd02dc0", + "semantic.border.action.common.active": "7440d4fdd3c9c2f2ce66aad11679adb12c4cc4ec", + "semantic.border.action.common.dark": "a35bbd3ec28cf1359467bfbbbc71cf5742119c7f", + "semantic.border.action.common.dark-hover": "7276d1390533d130ee3a9b9757fe7f6e9f696391", "semantic.border.neutral.default": "926cf2c12ee7510e905c5935d04a99c27e780bb6", "semantic.border.neutral.subtle": "61eaf517c6981184009c98e80d58a953ab69422f", "semantic.border.neutral.strong": "5832f6ab88c2f25a74ff6f18d74d8981513ed59f", @@ -985,14 +1040,10 @@ "semantic.text.neutral.default": "e084264f5b933e90fcc6a152cc5fffa7244e30d6", "semantic.text.neutral.subtle": "cf105793fbd54f73824598418634362ca60c8e4e", "semantic.text.neutral.on_inverted": "f0ce02d3118b486bc9fb3f61cf841923f89699b4", - "semantic.text.action.primary.default": "2f6d8e179b0fcbdbf61fc138ff9b0c0677fdeaf1", - "semantic.text.action.primary.hover": "c7e534c241ae5410dbe4b9d7b1017a996b0cbe41", - "semantic.text.action.primary.active": "ad4cd4e443a3a69634d59294cacd75e5c5f160c7", - "semantic.text.action.primary.on_action": "72310ee8ad1ba5a19ec023832d9add405e4ab2b5", - "semantic.text.action.secondary.default": "88899d057d7c8584c2b58fbee927af49ce1116d8", - "semantic.text.action.secondary.hover": "e169afc172cc4338acca8783e2885d292e31d885", - "semantic.text.action.secondary.active": "68ec1bce96ec8e116ff96d764587f0c90d48878f", - "semantic.text.action.secondary.on_action": "9a713327fb5fe555ff10a035d4b3431a9bf517a1", + "semantic.text.action.common.default": "495ee8a45ae8e334edf3c1d81656d3ddd0820254", + "semantic.text.action.common.hover": "d7a603cd6efb370dfd7093aa7964676bf0c481ce", + "semantic.text.action.common.active": "648c8be35aea3a3d994767fa225c284fecfe6f9f", + "semantic.text.action.common.on_action": "d3f684d7c3abf080e66c440a70946ee2db7a9177", "semantic.text.warning.default": "372f89db084bb2d76a43a1caa625b89eed667600", "semantic.text.warning.icon_warning": "4d57242be884beb77ede81db3649de6e7158c8c8", "semantic.text.warning.on_warning": "80ace6af38f4f1bde0014e9d3987eae17b3c20b3", @@ -1043,8 +1094,7 @@ "base_sizing": "9720ca86555bde90493208437a6f5cacd270ee0e", "border_width.default": "b44447ba2e2504923d4903e4eb14954434480085", "border_width.active": "82d06b8c6fdeea622611fa744ff261661a211760", - "border_width.tab_focus": "3ddf887f27c7dff953b8399c667e16448ae252d7", - "semantic.border.action.dark": "0f2c1c18c8204303501a0f6adc9a06b98861299e" + "border_width.tab_focus": "3ddf887f27c7dff953b8399c667e16448ae252d7" }, "group": "Brand" }, @@ -1055,48 +1105,43 @@ "selectedTokenSets": { "Base/Core": "source", "Base/Semantic": "enabled", - "Brand/Brreg": "enabled" + "Brand/Brreg": "enabled", + "Density/Default": "enabled" }, "$figmaVariableReferences": { - "brand.primary.50": "72bafb1938ce6a7d83de306738973c07ae1c81d7", - "brand.primary.100": "63e5e5b3492f8c2eb6a3bf28c4cdaf30fec110dd", - "brand.primary.200": "057a0b83108d7485acbacebb29af2ee8f628c8e4", - "brand.primary.300": "c1a6210a67e3c9290e972b3127fe73233ad4905d", - "brand.primary.400": "38ccc2cc05db7ea9e99eda35fd354707495a0cfe", - "brand.primary.500": "d479b864ee86e8411de049e55dbd908afe4ae7f1", - "brand.primary.600": "3995e5d4157b1aeaa9701cb5714ddeb461503f83", - "brand.primary.700": "eec213633fbb0c6d63a98a59d12acf71c624152a", - "brand.primary.800": "d310bdd0df53387a640db959beacfc5d157307a7", - "brand.primary.900": "4a937700819d82f1e1f082e5f230b2812d9cd6f9", - "brand.primary.950": "23d1fa52226e3ecdc8482d710fa4c58f6cd418a7", - "brand.secondary.50": "d0fa1cc832afb8b4177dacb59555d71c78796eba", - "brand.secondary.100": "a32a0344383475cbd2023cf273aff956643242d1", - "brand.secondary.200": "6ac42a7e62972ab39041eea68710bd9ba25c622e", - "brand.secondary.300": "e5015df164b88ce0f1d922c963d29756f0373fec", - "brand.secondary.400": "898c7ca507941ba9a90135b9f9df79bfb006ab24", - "brand.secondary.500": "64cf58b12d5aeb65bc36c2b5c3f611e4a9cb10c4", - "brand.secondary.600": "9d412892cf80820fc6e7fdb7234580a8551e1112", - "brand.secondary.700": "12c7276781ef624da47484329dd12d30bccf4994", - "brand.secondary.800": "c9888b116e2fa883a51fe9a187952dbfc857c14f", - "brand.secondary.900": "9763647eec7e34fd400ac567e724b69ef8ed161c", - "brand.secondary.950": "02be760503cd75ca4c343e3a54c02739d31011f7", - "brand.tertiary.50": "3e238772d930435dd9185bb4579b64007df866d9", - "brand.tertiary.100": "fe3d859f5b7bc074d478fb8a1b8de6454ec4aa78", - "brand.tertiary.200": "3d38368d37ae7ceb1dd81cc3ce7d01db46d080c7", - "brand.tertiary.300": "79cc7aad64074e9d97fb244288e7ac376819b1c4", - "brand.tertiary.400": "8330876aad27733ba10126b766f818e29ece6085", - "brand.tertiary.500": "8c53ad76c588803c2c3ddb5439e1d9c854b392d7", - "brand.tertiary.600": "571575ca17cee47233e899ef40c02b68348707f5", - "brand.tertiary.700": "1572d330e5501e5a1f2ee2010f5c53117ad5ab68", - "brand.tertiary.800": "e651cae9105e716e7d884361f3bf896a50e2d628", - "brand.tertiary.900": "14e1a6aae891ced8841151216cec25d63bedda1f", - "brand.tertiary.950": "9615bb570870e8fe3d9149bd87f59d22dbeb52ca", - "semantic.surface.action.primary.default": "3224793ea7d4779be7145901373bd958d74449c7", - "semantic.surface.action.primary.hover": "67d3e0a6fe5bffa2b601cf549d677e9dffe91e06", - "semantic.surface.action.primary.active": "45019ba69f93a6704efdf7ad33c9bdf5f5cf17a5", - "semantic.surface.action.secondary.default": "289db1f10554ebef6eff1698b18cbf1fdadfb9f9", - "semantic.surface.action.secondary.hover": "270134da72038e940c6259cbf5ae45760ff5ba2b", - "semantic.surface.action.secondary.active": "5b980d8e424956fb9164fe9ba04bb6627c6d4a4b", + "brand.alt1.50": "741f3f885aa3f266feda96defb70e59752495075", + "brand.alt1.100": "4aad3c2d1e9705bdfd285550a9e08950d7ce7c17", + "brand.alt1.200": "b29c57317b25742516666bd260e5bfe5c751164f", + "brand.alt1.300": "88b9cb771cfc628a54a546c7b924528dd0cde449", + "brand.alt1.400": "f9bc97ac5c9470f249fc22c2106ae9cc0e79c96a", + "brand.alt1.500": "e4a075d5ad1ac4c1a91fc3064b9abab52e543b87", + "brand.alt1.600": "e0e5a45e03ef29ed89b590e5c14438191a25a2c4", + "brand.alt1.700": "89ce4f02f32c61f6e48842e7cee289650b27f290", + "brand.alt1.800": "44fd7844e26551a870ffb7a9d50f554d648391bd", + "brand.alt1.900": "a316c90203c239c2727aedccb255e53abb2d2c89", + "brand.alt1.950": "5a21346d98b9551420c6d77d799907443471f148", + "brand.alt2.50": "a569ff243a8905ea0d7112238902e664ada0ceb9", + "brand.alt2.100": "52a17010b7a9ea59231d205c9165ef271894e96d", + "brand.alt2.200": "b80ed7f8c02c73bd0c951e4aa92cf9521aac0e52", + "brand.alt2.300": "2f18fe7a8a2697237825a4b78fb062a00d36e2ba", + "brand.alt2.400": "602f7440f7e436d816f0a69297d81a795f123335", + "brand.alt2.500": "8da24db700818fa2345724afba0e708c10bb0344", + "brand.alt2.600": "3cb486e824b5cd0ddd5cd945e0234bdb2c46ba35", + "brand.alt2.700": "02ee1a451119cf90d88bedb933ffce6cee41913e", + "brand.alt2.800": "afa77811a6432c0ef38fffbeaba36a15862cef20", + "brand.alt2.900": "3ffc5b092459e773b9c551876f7e7655b37f4bbf", + "brand.alt2.950": "8f867a646531f2e46fd77b36ae09abd5b3d13e65", + "brand.alt3.50": "330386bdb47ed063b0ecd51e81405b460f902eca", + "brand.alt3.100": "86ae2e670ba5b48721b7c545405af49103769e96", + "brand.alt3.200": "4407368e2ce6e3f9351b5f63339b24a0f4cb75d7", + "brand.alt3.300": "dda69b2d21b3622c773c0dcdb9ac69c79ca68530", + "brand.alt3.400": "5c6e30f4339fbeff0a7d3b3a59ccf9f7d9a12163", + "brand.alt3.500": "cca87ae300b4afe35de08b67ba37151550449136", + "brand.alt3.600": "07d10df79bc3bdc1f90feb12853451b8ef2a1012", + "brand.alt3.700": "89e7c552d409c7149d1567bca1b715c70b5b9c03", + "brand.alt3.800": "6043cf9d056f718d8566ffd7f4f8ba4ca4558612", + "brand.alt3.900": "9c008ccc7703add21d2ca7e7ead0e897bc6cfd86", + "brand.alt3.950": "6d5135e5d69f592ea56413a28bf129cc2121b63b", "semantic.surface.primary.light": "3dff5fed1bb86b9a135dc2559c45e9c21f5ddd94", "semantic.surface.primary.light-hover": "0ce4ac0cfd64af0e59fa30c432ad2253ad1d225d", "semantic.surface.primary.light-active": "12d48db064c5a1da3d54a4617714849a886a11b3", @@ -1109,6 +1154,22 @@ "semantic.surface.tertiary.light-hover": "19f169a88a9ce24aab9e8b17b500413c87e87dbb", "semantic.surface.tertiary.light-active": "ca101124ae0d2aadf85fd8047f08d376128bc17d", "semantic.surface.tertiary.dark": "abfb1593ceec73e5c7c04efceeb4aa849f34acf5", + "semantic.surface.action.brand_alt1.subtle": "569217923b570193583d9f7a71286621a266cdc6", + "semantic.surface.action.brand_alt1.subtle-hover": "d5bd3cc2bda5445411e7ff9c7ea5d37ef06e6717", + "semantic.surface.action.brand_alt1.default": "1ffb00ab4071d58dc3a7ccfb45ed532e1cd1fbde", + "semantic.surface.action.brand_alt1.hover": "9785a59f3686e9ef0b6deeeeaaa5937315c31839", + "semantic.surface.action.brand_alt1.active": "6156619f94df8bc8e14467bb43dadb98f766c59f", + "semantic.surface.action.brand_alt1.no_fill": "65dd4c9cc9c2953c34c1f1db462f80494bc266aa", + "semantic.surface.action.brand_alt1.no_fill-hover": "35985cfb7798c765bd92e687c6c49acbcc9d5a82", + "semantic.surface.action.brand_alt1.no_fill-active": "d6bc35e339798596f743693ccc010f9e7dbb6d1e", + "semantic.surface.action.brand_alt2.subtle": "cb33e0302edc44c5debaf9a974b65527f924abea", + "semantic.surface.action.brand_alt2.subtle-hover": "5d36eac128e74a297e330470d5f4999213227ce2", + "semantic.surface.action.brand_alt2.default": "2ede466ea9f650c1b0811f12fcf7794684cd295a", + "semantic.surface.action.brand_alt2.hover": "5fa19605b405a358ab518fcf76e1b742fe284ec2", + "semantic.surface.action.brand_alt2.active": "652b31b9f7810ef55981ef9dc2f17f37b4a55aa4", + "semantic.surface.action.brand_alt2.no_fill": "8b7de4272c93eca66b67bea465e588a9076b173b", + "semantic.surface.action.brand_alt2.no_fill-hover": "abd75269b771ca8f4b566639647ffb236012c411", + "semantic.surface.action.brand_alt2.no_fill-active": "19fdc12d684d66c4b62ac1730fec93577cb19180", "semantic.border.primary.default": "26d7d78349bdbfff162fea599c03aa6b6dd6b1c4", "semantic.border.primary.hover": "ec54d7ad0f9c8bfe0a02c77af471b3a5c73d2e36", "semantic.border.primary.active": "87442a8b64934289de42a249b154156fbf384284", @@ -1118,14 +1179,24 @@ "semantic.border.tertiary.default": "09b9bf835501e0713abb2be09a7142195aa911b8", "semantic.border.tertiary.hover": "1e231d7a9fdbb38a9a76df1c75bc29b0c9ba333b", "semantic.border.tertiary.active": "d2e5800d58e5796542422879a28194f1c708ff6f", - "semantic.text.action.primary.default": "2f6d8e179b0fcbdbf61fc138ff9b0c0677fdeaf1", - "semantic.text.action.primary.hover": "c7e534c241ae5410dbe4b9d7b1017a996b0cbe41", - "semantic.text.action.primary.active": "ad4cd4e443a3a69634d59294cacd75e5c5f160c7", - "semantic.text.action.primary.on_action": "72310ee8ad1ba5a19ec023832d9add405e4ab2b5", - "semantic.text.action.secondary.default": "88899d057d7c8584c2b58fbee927af49ce1116d8", - "semantic.text.action.secondary.hover": "e169afc172cc4338acca8783e2885d292e31d885", - "semantic.text.action.secondary.active": "68ec1bce96ec8e116ff96d764587f0c90d48878f", - "semantic.text.action.secondary.on_action": "9a713327fb5fe555ff10a035d4b3431a9bf517a1", + "semantic.border.action.brand_alt1.subtle": "ce219465c87404c91dd11d5ec48aa8e26a4b6cda", + "semantic.border.action.brand_alt1.subtle-hover": "8b2ddd14ba0fbe510114535ce53aedc75c8d4f4a", + "semantic.border.action.brand_alt1.default": "240490a7c68f61f179d2f609473656bb6d4d3825", + "semantic.border.action.brand_alt1.hover": "9ff3015a2acad304a869dcff5562f38fd9069ea7", + "semantic.border.action.brand_alt1.active": "0f60f77b98525932bf7c8dbdcc5708b832bfc32e", + "semantic.text.action.brand_alt1.default": "d06698428455e574641d941f6bf470503aff6571", + "semantic.text.action.brand_alt1.hover": "1717155c5696e84b5ed991dd27ce70af2c47fdf4", + "semantic.text.action.brand_alt1.active": "7b703d65b372e6af59e2e257b60b7b26fe180764", + "semantic.text.action.brand_alt1.on_action": "8bda1f00f4c40e3315b44bf0d08b63875b985256", + "semantic.border.action.brand_alt2.subtle": "48d3ea849f38d906f6e8529ef3eefe82f24a8aaa", + "semantic.border.action.brand_alt2.subtle-hover": "77351e76cdf3461b0e0c951a95b26b6e4418f80f", + "semantic.border.action.brand_alt2.default": "4460485af2d68e6889e24bdccf3af17ed63a4a03", + "semantic.border.action.brand_alt2.hover": "56f6fb7218e555648f7df4d782bbce1b7835f5b8", + "semantic.border.action.brand_alt2.active": "e5af7480690111bbec35b957aecb7670c62d2700", + "semantic.text.action.brand_alt2.default": "1d4ec6c36a0e1121fda05c0ce4f95c5d1553e6b7", + "semantic.text.action.brand_alt2.hover": "de47a42e752d8aedcd10b908ed0090a3e0e9ca88", + "semantic.text.action.brand_alt2.active": "c7569ec1056825c1a52b9549611c48637d8c2fea", + "semantic.text.action.brand_alt2.on_action": "663bfa559afd3875a77cb82e602644b6290d72d6", "semantic.background.default": "25860544ea24bfc677bf722b5e20ea3fc631afd8", "semantic.background.subtle": "5055f730eae40b1d8f36c27f4ae6d48fe85add82", "semantic.surface.neutral.default": "94fc7e07e074a3a933e7dbcd45fb6578bb727c8b", @@ -1133,18 +1204,17 @@ "semantic.surface.neutral.subtle": "072113acf733592a7331b0a60e6a4eeaba3f51f6", "semantic.surface.neutral.subtle-hover": "19eb9af0393a16ae01a48972e77a16efb16eeb21", "semantic.surface.neutral.dark": "18e3ba1f54c2b363135f1498775fb4e96e9074da", + "semantic.surface.neutral.dark-hover": "efcf3d7a4016df005cd2d858ef733ceb8b2d6bca", "semantic.surface.neutral.inverted": "829ca533c51e3313229bc965096af00de00887f3", - "semantic.surface.action.primary.subtle": "4b4fcdea8db61ae0dbc8cfe92e43a14b0bbbd419", - "semantic.surface.action.primary.subtle-hover": "d222e50958a1a181215b0e7c08fab68e531dc72f", - "semantic.surface.action.primary.no_fill": "f71c5104b0a17c2dbc0b8696f775ce56453e306c", - "semantic.surface.action.primary.no_fill-hover": "c882e6f21b1bd5671cf67931694ecca0e545510c", - "semantic.surface.action.primary.no_fill-active": "49546fbca10893ed632a44065e31464a182fd3e0", - "semantic.surface.action.secondary.subtle": "a8189f9429cf9d9573261606c932d038351dd194", - "semantic.surface.action.secondary.subtle-hover": "849d739cdbcbce5bee9babcdb9a30b7c29f08d0c", - "semantic.surface.action.secondary.no_fill": "93001593b13c2f9e232066ed5e218576754f69e9", - "semantic.surface.action.secondary.no_fill-hover": "d33e63d8f3c212ee6a6c98039b49c712cb551f17", - "semantic.surface.action.secondary.no_fill-active": "3d188a0071be6874c09cc10a36b3127da959ac40", - "semantic.surface.action.checked": "a012df3f7f2ce68950a401de91633c3e70a7f6e7", + "semantic.surface.action.common.subtle": "75cc22bd5c6c94a5e5fb23cd164aaec5506a6c4a", + "semantic.surface.action.common.subtle-hover": "f5375de1115faecf98170313fcdaf570e53cd4b6", + "semantic.surface.action.common.default": "cf6d54f74547d2b4abde13a874084446a16c5c96", + "semantic.surface.action.common.hover": "981d112837bf874490151a3666939a023862dccc", + "semantic.surface.action.common.active": "cb0e487a0079d8bf60b587b16f66e2844915a38d", + "semantic.surface.action.common.no_fill": "b2112d2d9f8fd4cb46c992d396f383a2e2867c88", + "semantic.surface.action.common.no_fill-hover": "07e581146cfef97f7992a37fe2c795587484c2d0", + "semantic.surface.action.common.no_fill-active": "4b4db73b559b8b03285458d6fafb6956da4768a3", + "semantic.surface.action.common.checked": "f546d1adf80894cb56e7565edce63d847d909642", "semantic.surface.success.subtle": "4d65f5a3b0724e554432b0f3b4a6f9d8eb32532c", "semantic.surface.success.subtle-hover": "92f493b4e256f985653ddd390827c9bbfbaababc", "semantic.surface.success.default": "af25ae7d2fb04081fc80b7dbf4832443bb4f7d54", @@ -1173,17 +1243,13 @@ "semantic.surface.on_inverted.no_fill-hover": "95c81a1c06bc82cb1afd51300a27d65e4ff52269", "semantic.surface.on_inverted.no_fill-active": "d3d2ee87d81af7bd2f06ca6bc46c54481f349eea", "semantic.border.info.default": "706d2ddf232b2159e8082ed895ba160ddb3ea807", - "semantic.border.action.primary.subtle": "6bc771b3969e960825b8fedf929a033fbbfc93fa", - "semantic.border.action.primary.subtle-hover": "aa6e077bea51bce391c4657318afede1d0a8ddb4", - "semantic.border.action.primary.default": "2b8f878780a4bb5cbb51fb4616e58cabdbc4d120", - "semantic.border.action.primary.hover": "ac58b4805ceec71060f771b43e856e6d3254710a", - "semantic.border.action.primary.active": "96bcd30fcc6e6109007b33b51614e419509d9b53", - "semantic.border.action.secondary.subtle": "7fb6049ba38729ab4de9b861013950dd05fb1620", - "semantic.border.action.secondary.subtle-hover": "3db6a49ebefd58167a7aa2f6df6a9933eb63b22e", - "semantic.border.action.secondary.default": "1982d70d5d0554312964527b839818103942ad07", - "semantic.border.action.secondary.hover": "5a198e77a279505db0762533275d772d3cdb1137", - "semantic.border.action.secondary.active": "147ad7bee625c87b00c3bf733523396cfcf8aeee", - "semantic.border.action.hover": "ab15b7ba98f93f5349337859d8c4e0a1bb4b64a9", + "semantic.border.action.common.subtle": "2dee87d7622b0260c4b890fb48b45c1282131722", + "semantic.border.action.common.subtle-hover": "409f719b2a8a97d966c328ecacbe29655d02bcad", + "semantic.border.action.common.default": "d8960a64a391a0ff4dba9607c9f02b95ad66ae88", + "semantic.border.action.common.hover": "883575c9a42e0f8960fea191c54531e5cbd02dc0", + "semantic.border.action.common.active": "7440d4fdd3c9c2f2ce66aad11679adb12c4cc4ec", + "semantic.border.action.common.dark": "a35bbd3ec28cf1359467bfbbbc71cf5742119c7f", + "semantic.border.action.common.dark-hover": "7276d1390533d130ee3a9b9757fe7f6e9f696391", "semantic.border.neutral.default": "926cf2c12ee7510e905c5935d04a99c27e780bb6", "semantic.border.neutral.subtle": "61eaf517c6981184009c98e80d58a953ab69422f", "semantic.border.neutral.strong": "5832f6ab88c2f25a74ff6f18d74d8981513ed59f", @@ -1210,6 +1276,10 @@ "semantic.text.neutral.default": "e084264f5b933e90fcc6a152cc5fffa7244e30d6", "semantic.text.neutral.subtle": "cf105793fbd54f73824598418634362ca60c8e4e", "semantic.text.neutral.on_inverted": "f0ce02d3118b486bc9fb3f61cf841923f89699b4", + "semantic.text.action.common.default": "495ee8a45ae8e334edf3c1d81656d3ddd0820254", + "semantic.text.action.common.hover": "d7a603cd6efb370dfd7093aa7964676bf0c481ce", + "semantic.text.action.common.active": "648c8be35aea3a3d994767fa225c284fecfe6f9f", + "semantic.text.action.common.on_action": "d3f684d7c3abf080e66c440a70946ee2db7a9177", "semantic.text.warning.default": "372f89db084bb2d76a43a1caa625b89eed667600", "semantic.text.warning.icon_warning": "4d57242be884beb77ede81db3649de6e7158c8c8", "semantic.text.warning.on_warning": "80ace6af38f4f1bde0014e9d3987eae17b3c20b3", @@ -1260,12 +1330,11 @@ "base_sizing": "9720ca86555bde90493208437a6f5cacd270ee0e", "border_width.default": "b44447ba2e2504923d4903e4eb14954434480085", "border_width.active": "82d06b8c6fdeea622611fa744ff261661a211760", - "border_width.tab_focus": "3ddf887f27c7dff953b8399c667e16448ae252d7", - "semantic.border.action.dark": "0f2c1c18c8204303501a0f6adc9a06b98861299e" + "border_width.tab_focus": "3ddf887f27c7dff953b8399c667e16448ae252d7" }, - "group": "Brand", "$figmaCollectionId": "VariableCollectionId:6324:1609", - "$figmaModeId": "6324:4" + "$figmaModeId": "6324:4", + "group": "Brand" }, { "id": "33e1200e221c81b1bd3439e6f7413a9ac3af9aa4", diff --git a/design-tokens/Base/Semantic.json b/design-tokens/Base/Semantic.json index d4980785bd..e0a3e8a202 100644 --- a/design-tokens/Base/Semantic.json +++ b/design-tokens/Base/Semantic.json @@ -78,76 +78,6 @@ "checked": { "value": "{colors.blue.700}", "type": "color" - }, - "primary": { - "subtle": { - "value": "{colors.blue.100}", - "type": "color" - }, - "subtle-hover": { - "value": "{colors.blue.200}", - "type": "color" - }, - "default": { - "value": "{colors.blue.700}", - "type": "color" - }, - "hover": { - "value": "{colors.blue.800}", - "type": "color" - }, - "active": { - "value": "{colors.blue.900}", - "type": "color", - "description": "Standard farge for handlinger" - }, - "no_fill": { - "value": "{colors.white}", - "type": "color" - }, - "no_fill-hover": { - "value": "{colors.blue.100}", - "type": "color" - }, - "no_fill-active": { - "value": "{colors.blue.200}", - "type": "color" - } - }, - "secondary": { - "subtle": { - "value": "{colors.grey.100}", - "type": "color" - }, - "subtle-hover": { - "value": "{colors.grey.200}", - "type": "color" - }, - "default": { - "value": "{colors.blue.900}", - "type": "color" - }, - "hover": { - "value": "rgba({colors.blue.900}, 0.9)", - "type": "color" - }, - "active": { - "value": "rgba({colors.blue.900}, 0.8)", - "type": "color", - "description": "Standard farge for handlinger" - }, - "no_fill": { - "value": "{colors.white}", - "type": "color" - }, - "no_fill-hover": { - "value": "rgba({colors.blue.900}, 0.1)", - "type": "color" - }, - "no_fill-active": { - "value": "rgba({colors.blue.900}, 0.2)", - "type": "color" - } } }, "success": { @@ -304,50 +234,6 @@ "dark-hover": { "value": "{colors.blue.700}", "type": "color" - }, - "primary": { - "subtle": { - "value": "{colors.blue.200}", - "type": "color" - }, - "subtle-hover": { - "value": "{colors.blue.400}", - "type": "color" - }, - "default": { - "value": "{colors.blue.700}", - "type": "color" - }, - "hover": { - "value": "{colors.blue.800}", - "type": "color" - }, - "active": { - "value": "{colors.blue.900}", - "type": "color" - } - }, - "secondary": { - "subtle": { - "value": "{colors.grey.200}", - "type": "color" - }, - "subtle-hover": { - "value": "{colors.grey.300}", - "type": "color" - }, - "default": { - "value": "{colors.blue.900}", - "type": "color" - }, - "hover": { - "value": "{colors.blue.900}", - "type": "color" - }, - "active": { - "value": "{colors.blue.900}", - "type": "color" - } } }, "neutral": { @@ -490,42 +376,6 @@ "on_action": { "value": "{colors.white}", "type": "color" - }, - "primary": { - "default": { - "value": "{colors.blue.700}", - "type": "color" - }, - "hover": { - "value": "#004e95", - "type": "color" - }, - "active": { - "value": "#00315d", - "type": "color" - }, - "on_action": { - "value": "{colors.white}", - "type": "color" - } - }, - "secondary": { - "default": { - "value": "{colors.blue.900}", - "type": "color" - }, - "hover": { - "value": "{colors.blue.900}", - "type": "color" - }, - "active": { - "value": "{colors.blue.900}", - "type": "color" - }, - "on_action": { - "value": "{colors.white}", - "type": "color" - } } }, "warning": { @@ -856,6 +706,20 @@ } }, "error_message": { + "large": { + "value": { + "fontFamily": "{fontFamilies.inter}", + "fontWeight": "{fontWeights.regular}", + "lineHeight": "{lineHeights.300}", + "fontSize": "{font-size.f1}", + "letterSpacing": "{letterSpacing.1}", + "paragraphSpacing": "{paragraphSpacing.0}", + "paragraphIndent": "{paragraphIndent.0}", + "textCase": "{textCase.none}", + "textDecoration": "{textDecoration.none}" + }, + "type": "typography" + }, "medium": { "value": { "fontFamily": "{fontFamilies.inter}", diff --git a/design-tokens/Brand/Altinn.json b/design-tokens/Brand/Altinn.json index ab9646c51f..2c53aa8389 100644 --- a/design-tokens/Brand/Altinn.json +++ b/design-tokens/Brand/Altinn.json @@ -1,6 +1,6 @@ { "brand": { - "primary": { + "alt1": { "100": { "value": "#E6EFF8", "type": "color", @@ -47,7 +47,7 @@ "description": "AA 4.7 on white" } }, - "secondary": { + "alt2": { "100": { "value": "#DCD6EA", "type": "color", @@ -94,7 +94,7 @@ "description": "AA18 4.4 on grey 800\nAA18 3.2 on white" } }, - "tertiary": { + "alt3": { "100": { "value": "#F9D5DB", "type": "color", @@ -144,103 +144,261 @@ }, "semantic": { "surface": { - "primary": { + "first": { "light": { - "value": "{brand.primary.200}", + "value": "{brand.alt1.200}", "type": "color" }, "light-hover": { - "value": "{brand.primary.300}", + "value": "{brand.alt1.300}", "type": "color" }, "light-active": { - "value": "{brand.primary.400}", + "value": "{brand.alt1.400}", "type": "color" }, "dark": { - "value": "{brand.primary.800}", + "value": "{brand.alt1.800}", "type": "color" } }, - "secondary": { + "second": { "light": { - "value": "{brand.secondary.200}", + "value": "{brand.alt2.200}", "type": "color" }, "light-hover": { - "value": "{brand.secondary.300}", + "value": "{brand.alt2.300}", "type": "color" }, "light-active": { - "value": "{brand.secondary.400}", + "value": "{brand.alt2.400}", "type": "color" }, "dark": { - "value": "{brand.secondary.900}", + "value": "{brand.alt2.900}", "type": "color" } }, - "tertiary": { + "third": { "light": { - "value": "{brand.tertiary.200}", + "value": "{brand.alt3.200}", "type": "color" }, "light-hover": { - "value": "{brand.tertiary.300}", + "value": "{brand.alt3.300}", "type": "color" }, "light-active": { - "value": "{brand.tertiary.400}", + "value": "{brand.alt3.400}", "type": "color" }, "dark": { - "value": "{brand.tertiary.800}", + "value": "{brand.alt3.800}", "type": "color" } + }, + "action": { + "first": { + "subtle": { + "value": "{colors.blue.100}", + "type": "color" + }, + "subtle-hover": { + "value": "{colors.blue.200}", + "type": "color" + }, + "default": { + "value": "{colors.blue.700}", + "type": "color" + }, + "hover": { + "value": "{colors.blue.800}", + "type": "color" + }, + "active": { + "value": "{colors.blue.900}", + "type": "color", + "description": "Standard farge for handlinger" + }, + "no_fill": { + "value": "{colors.white}", + "type": "color" + }, + "no_fill-hover": { + "value": "{colors.blue.100}", + "type": "color" + }, + "no_fill-active": { + "value": "{colors.blue.200}", + "type": "color" + } + }, + "second": { + "subtle": { + "value": "{colors.grey.100}", + "type": "color" + }, + "subtle-hover": { + "value": "{colors.grey.200}", + "type": "color" + }, + "default": { + "value": "{colors.blue.900}", + "type": "color" + }, + "hover": { + "value": "rgba({colors.blue.900}, 0.9)", + "type": "color" + }, + "active": { + "value": "rgba({colors.blue.900}, 0.8)", + "type": "color", + "description": "Standard farge for handlinger" + }, + "no_fill": { + "value": "{colors.white}", + "type": "color" + }, + "no_fill-hover": { + "value": "rgba({colors.blue.900}, 0.1)", + "type": "color" + }, + "no_fill-active": { + "value": "rgba({colors.blue.900}, 0.2)", + "type": "color" + } + } } }, "border": { - "primary": { + "first": { "default": { - "value": "{brand.primary.600}", + "value": "{brand.alt1.600}", "type": "color" }, "hover": { - "value": "{brand.primary.700}", + "value": "{brand.alt1.700}", "type": "color" }, "active": { - "value": "{brand.primary.800}", + "value": "{brand.alt1.800}", "type": "color" } }, - "secondary": { + "second": { "default": { - "value": "{brand.secondary.600}", + "value": "{brand.alt2.600}", "type": "color" }, "hover": { - "value": "{brand.secondary.700}", + "value": "{brand.alt2.700}", "type": "color" }, "active": { - "value": "{brand.secondary.800}", + "value": "{brand.alt2.800}", "type": "color" } }, - "tertiary": { + "third": { "default": { - "value": "{brand.tertiary.600}", + "value": "{brand.alt3.600}", "type": "color" }, "hover": { - "value": "{brand.tertiary.700}", + "value": "{brand.alt3.700}", "type": "color" }, "active": { - "value": "{brand.tertiary.800}", + "value": "{brand.alt3.800}", "type": "color" } + }, + "action": { + "first": { + "subtle": { + "value": "{colors.grey.200}", + "type": "color" + }, + "subtle-hover": { + "value": "{colors.grey.300}", + "type": "color" + }, + "default": { + "value": "{colors.blue.900}", + "type": "color" + }, + "hover": { + "value": "{colors.blue.900}", + "type": "color" + }, + "active": { + "value": "{colors.blue.900}", + "type": "color" + } + }, + "second": { + "subtle": { + "value": "{colors.grey.200}", + "type": "color" + }, + "subtle-hover": { + "value": "{colors.grey.300}", + "type": "color" + }, + "default": { + "value": "{colors.blue.900}", + "type": "color" + }, + "hover": { + "value": "{colors.blue.900}", + "type": "color" + }, + "active": { + "value": "{colors.blue.900}", + "type": "color" + } + } + } + }, + "text": { + "action": { + "first": { + "default": { + "value": "{colors.blue.700}", + "type": "color" + }, + "hover": { + "value": "#004e95", + "type": "color" + }, + "active": { + "value": "#00315d", + "type": "color" + }, + "on_action": { + "value": "{colors.white}", + "type": "color" + } + }, + "second": { + "default": { + "value": "{colors.blue.900}", + "type": "color" + }, + "hover": { + "value": "{colors.blue.900}", + "type": "color" + }, + "active": { + "value": "{colors.blue.900}", + "type": "color" + }, + "on_action": { + "value": "{colors.white}", + "type": "color" + } + } } } } diff --git a/design-tokens/Brand/Brreg.json b/design-tokens/Brand/Brreg.json index f3c6fef972..175598f739 100644 --- a/design-tokens/Brand/Brreg.json +++ b/design-tokens/Brand/Brreg.json @@ -1,6 +1,6 @@ { "brand": { - "primary": { + "alt1": { "50": { "value": "#FFFFFF", "type": "color" @@ -46,7 +46,7 @@ "type": "color" } }, - "secondary": { + "alt2": { "50": { "value": "#FFFFFF", "type": "color" @@ -92,7 +92,7 @@ "type": "color" } }, - "tertiary": { + "alt3": { "50": { "value": "#EBF2F3", "type": "color" @@ -141,103 +141,261 @@ }, "semantic": { "surface": { - "primary": { + "first": { "light": { - "value": "{brand.primary.100}", + "value": "{brand.alt1.100}", "type": "color" }, "light-hover": { - "value": "{brand.primary.300}", + "value": "{brand.alt1.300}", "type": "color" }, "light-active": { - "value": "{brand.primary.400}", + "value": "{brand.alt1.400}", "type": "color" }, "dark": { - "value": "{brand.primary.700}", + "value": "{brand.alt1.700}", "type": "color" } }, - "secondary": { + "second": { "light": { - "value": "{brand.secondary.200}", + "value": "{brand.alt2.200}", "type": "color" }, "light-hover": { - "value": "{brand.secondary.300}", + "value": "{brand.alt2.300}", "type": "color" }, "light-active": { - "value": "{brand.secondary.400}", + "value": "{brand.alt2.400}", "type": "color" }, "dark": { - "value": "{brand.secondary.700}", + "value": "{brand.alt2.700}", "type": "color" } }, - "tertiary": { + "third": { "light": { - "value": "{brand.tertiary.100}", + "value": "{brand.alt3.100}", "type": "color" }, "light-hover": { - "value": "{brand.tertiary.200}", + "value": "{brand.alt3.200}", "type": "color" }, "light-active": { - "value": "{brand.tertiary.300}", + "value": "{brand.alt3.300}", "type": "color" }, "dark": { - "value": "{brand.tertiary.700}", + "value": "{brand.alt3.700}", "type": "color" } + }, + "action": { + "first": { + "subtle": { + "value": "{colors.blue.100}", + "type": "color" + }, + "subtle-hover": { + "value": "{colors.blue.200}", + "type": "color" + }, + "default": { + "value": "{colors.blue.700}", + "type": "color" + }, + "hover": { + "value": "{colors.blue.800}", + "type": "color" + }, + "active": { + "value": "{colors.blue.900}", + "type": "color", + "description": "Standard farge for handlinger" + }, + "no_fill": { + "value": "{colors.white}", + "type": "color" + }, + "no_fill-hover": { + "value": "{colors.blue.100}", + "type": "color" + }, + "no_fill-active": { + "value": "{colors.blue.200}", + "type": "color" + } + }, + "second": { + "subtle": { + "value": "{colors.grey.100}", + "type": "color" + }, + "subtle-hover": { + "value": "{colors.grey.200}", + "type": "color" + }, + "default": { + "value": "{colors.blue.900}", + "type": "color" + }, + "hover": { + "value": "rgba({colors.blue.900}, 0.9)", + "type": "color" + }, + "active": { + "value": "rgba({colors.blue.900}, 0.8)", + "type": "color", + "description": "Standard farge for handlinger" + }, + "no_fill": { + "value": "{colors.white}", + "type": "color" + }, + "no_fill-hover": { + "value": "rgba({colors.blue.900}, 0.1)", + "type": "color" + }, + "no_fill-active": { + "value": "rgba({colors.blue.900}, 0.2)", + "type": "color" + } + } } }, "border": { - "primary": { + "first": { "default": { - "value": "{brand.primary.600}", + "value": "{brand.alt1.600}", "type": "color" }, "hover": { - "value": "{brand.primary.700}", + "value": "{brand.alt1.700}", "type": "color" }, "active": { - "value": "{brand.primary.800}", + "value": "{brand.alt1.800}", "type": "color" } }, - "secondary": { + "second": { "default": { - "value": "{brand.secondary.600}", + "value": "{brand.alt2.600}", "type": "color" }, "hover": { - "value": "{brand.secondary.700}", + "value": "{brand.alt2.700}", "type": "color" }, "active": { - "value": "{brand.secondary.800}", + "value": "{brand.alt2.800}", "type": "color" } }, - "tertiary": { + "third": { "default": { - "value": "{brand.tertiary.400}", + "value": "{brand.alt3.400}", "type": "color" }, "hover": { - "value": "{brand.tertiary.500}", + "value": "{brand.alt3.500}", "type": "color" }, "active": { - "value": "{brand.tertiary.600}", + "value": "{brand.alt3.600}", "type": "color" } + }, + "action": { + "first": { + "subtle": { + "value": "{colors.grey.200}", + "type": "color" + }, + "subtle-hover": { + "value": "{colors.grey.300}", + "type": "color" + }, + "default": { + "value": "{colors.blue.900}", + "type": "color" + }, + "hover": { + "value": "{colors.blue.900}", + "type": "color" + }, + "active": { + "value": "{colors.blue.900}", + "type": "color" + } + }, + "second": { + "subtle": { + "value": "{colors.grey.200}", + "type": "color" + }, + "subtle-hover": { + "value": "{colors.grey.300}", + "type": "color" + }, + "default": { + "value": "{colors.blue.900}", + "type": "color" + }, + "hover": { + "value": "{colors.blue.900}", + "type": "color" + }, + "active": { + "value": "{colors.blue.900}", + "type": "color" + } + } + } + }, + "text": { + "action": { + "first": { + "default": { + "value": "{colors.blue.900}", + "type": "color" + }, + "hover": { + "value": "{colors.blue.900}", + "type": "color" + }, + "active": { + "value": "{colors.blue.900}", + "type": "color" + }, + "on_action": { + "value": "{colors.white}", + "type": "color" + } + }, + "second": { + "default": { + "value": "{colors.blue.900}", + "type": "color" + }, + "hover": { + "value": "{colors.blue.900}", + "type": "color" + }, + "active": { + "value": "{colors.blue.900}", + "type": "color" + }, + "on_action": { + "value": "{colors.white}", + "type": "color" + } + } } } } diff --git a/design-tokens/Brand/Digdir.json b/design-tokens/Brand/Digdir.json index b607d80e28..1e885de52d 100644 --- a/design-tokens/Brand/Digdir.json +++ b/design-tokens/Brand/Digdir.json @@ -1,6 +1,6 @@ { "brand": { - "primary": { + "alt1": { "100": { "value": "#feefef", "type": "color", @@ -46,7 +46,7 @@ "type": "color" } }, - "secondary": { + "alt2": { "100": { "value": "#fcf7e9", "type": "color", @@ -92,7 +92,7 @@ "type": "color" } }, - "tertiary": { + "alt3": { "100": { "value": "#e9f5ff", "type": "color", @@ -141,103 +141,261 @@ }, "semantic": { "surface": { - "primary": { + "first": { "light": { - "value": "{brand.primary.200}", + "value": "{brand.alt1.200}", "type": "color" }, "light-hover": { - "value": "{brand.primary.300}", + "value": "{brand.alt1.300}", "type": "color" }, "light-active": { - "value": "{brand.primary.400}", + "value": "{brand.alt1.400}", "type": "color" }, "dark": { - "value": "{brand.primary.800}", + "value": "{brand.alt1.800}", "type": "color" } }, - "secondary": { + "second": { "light": { - "value": "{brand.secondary.200}", + "value": "{brand.alt2.200}", "type": "color" }, "light-hover": { - "value": "{brand.secondary.300}", + "value": "{brand.alt2.300}", "type": "color" }, "light-active": { - "value": "{brand.secondary.400}", + "value": "{brand.alt2.400}", "type": "color" }, "dark": { - "value": "{brand.secondary.900}", + "value": "{brand.alt2.900}", "type": "color" } }, - "tertiary": { + "third": { "light": { - "value": "{brand.tertiary.200}", + "value": "{brand.alt3.200}", "type": "color" }, "light-hover": { - "value": "{brand.tertiary.300}", + "value": "{brand.alt3.300}", "type": "color" }, "light-active": { - "value": "{brand.tertiary.400}", + "value": "{brand.alt3.400}", "type": "color" }, "dark": { - "value": "{brand.tertiary.800}", + "value": "{brand.alt3.800}", "type": "color" } + }, + "action": { + "first": { + "subtle": { + "value": "{colors.blue.100}", + "type": "color" + }, + "subtle-hover": { + "value": "{colors.blue.200}", + "type": "color" + }, + "default": { + "value": "{colors.blue.700}", + "type": "color" + }, + "hover": { + "value": "{colors.blue.800}", + "type": "color" + }, + "active": { + "value": "{colors.blue.900}", + "type": "color", + "description": "Standard farge for handlinger" + }, + "no_fill": { + "value": "{colors.white}", + "type": "color" + }, + "no_fill-hover": { + "value": "{colors.blue.100}", + "type": "color" + }, + "no_fill-active": { + "value": "{colors.blue.200}", + "type": "color" + } + }, + "second": { + "subtle": { + "value": "{colors.grey.100}", + "type": "color" + }, + "subtle-hover": { + "value": "{colors.grey.200}", + "type": "color" + }, + "default": { + "value": "{colors.blue.900}", + "type": "color" + }, + "hover": { + "value": "rgba({colors.blue.900}, 0.9)", + "type": "color" + }, + "active": { + "value": "rgba({colors.blue.900}, 0.8)", + "type": "color", + "description": "Standard farge for handlinger" + }, + "no_fill": { + "value": "{colors.white}", + "type": "color" + }, + "no_fill-hover": { + "value": "rgba({colors.blue.900}, 0.1)", + "type": "color" + }, + "no_fill-active": { + "value": "rgba({colors.blue.900}, 0.2)", + "type": "color" + } + } } }, "border": { - "primary": { + "first": { "default": { - "value": "{brand.primary.600}", + "value": "{brand.alt1.600}", "type": "color" }, "hover": { - "value": "{brand.primary.700}", + "value": "{brand.alt1.700}", "type": "color" }, "active": { - "value": "{brand.primary.800}", + "value": "{brand.alt1.800}", "type": "color" } }, - "secondary": { + "second": { "default": { - "value": "{brand.secondary.600}", + "value": "{brand.alt2.600}", "type": "color" }, "hover": { - "value": "{brand.secondary.700}", + "value": "{brand.alt2.700}", "type": "color" }, "active": { - "value": "{brand.secondary.800}", + "value": "{brand.alt2.800}", "type": "color" } }, - "tertiary": { + "third": { "default": { - "value": "{brand.tertiary.600}", + "value": "{brand.alt3.600}", "type": "color" }, "hover": { - "value": "{brand.tertiary.700}", + "value": "{brand.alt3.700}", "type": "color" }, "active": { - "value": "{brand.tertiary.800}", + "value": "{brand.alt3.800}", "type": "color" } + }, + "action": { + "first": { + "subtle": { + "value": "{colors.blue.200}", + "type": "color" + }, + "subtle-hover": { + "value": "{colors.blue.400}", + "type": "color" + }, + "default": { + "value": "{colors.blue.700}", + "type": "color" + }, + "hover": { + "value": "{colors.blue.800}", + "type": "color" + }, + "active": { + "value": "{colors.blue.900}", + "type": "color" + } + }, + "second": { + "subtle": { + "value": "{colors.grey.200}", + "type": "color" + }, + "subtle-hover": { + "value": "{colors.grey.300}", + "type": "color" + }, + "default": { + "value": "{colors.blue.900}", + "type": "color" + }, + "hover": { + "value": "{colors.blue.900}", + "type": "color" + }, + "active": { + "value": "{colors.blue.900}", + "type": "color" + } + } + } + }, + "text": { + "action": { + "first": { + "default": { + "value": "{colors.blue.700}", + "type": "color" + }, + "hover": { + "value": "#004e95", + "type": "color" + }, + "active": { + "value": "#00315d", + "type": "color" + }, + "on_action": { + "value": "{colors.white}", + "type": "color" + } + }, + "second": { + "default": { + "value": "{colors.blue.900}", + "type": "color" + }, + "hover": { + "value": "{colors.blue.900}", + "type": "color" + }, + "active": { + "value": "{colors.blue.900}", + "type": "color" + }, + "on_action": { + "value": "{colors.white}", + "type": "color" + } + } } } } diff --git a/design-tokens/Brand/Tilsynet.json b/design-tokens/Brand/Tilsynet.json index b3a6a4ebe7..5df38a7904 100644 --- a/design-tokens/Brand/Tilsynet.json +++ b/design-tokens/Brand/Tilsynet.json @@ -1,6 +1,6 @@ { "brand": { - "primary": { + "alt1": { "100": { "value": "#efeffb", "type": "color" @@ -38,7 +38,7 @@ "type": "color" } }, - "secondary": { + "alt2": { "100": { "value": "#ffeee1", "type": "color" @@ -76,7 +76,7 @@ "type": "color" } }, - "tertiary": { + "alt3": { "100": { "value": "#eff6f4", "type": "color" @@ -117,135 +117,261 @@ }, "semantic": { "surface": { - "action": { - "primary": { - "default": { - "value": "{brand.primary.700}", - "type": "color" - }, - "hover": { - "value": "{brand.primary.800}", - "type": "color" - }, - "active": { - "value": "{brand.primary.900}", - "type": "color", - "description": "Standard farge for handlinger" - } - }, - "secondary": { - "default": { - "value": "{brand.tertiary.800}", - "type": "color" - }, - "hover": { - "value": "{brand.tertiary.900}", - "type": "color" - }, - "active": { - "value": "{brand.tertiary.900}", - "type": "color", - "description": "Standard farge for handlinger" - } - } - }, - "primary": { + "first": { "light": { - "value": "{brand.primary.200}", + "value": "{brand.alt1.200}", "type": "color" }, "light-hover": { - "value": "{brand.primary.300}", + "value": "{brand.alt1.300}", "type": "color" }, "light-active": { - "value": "{brand.primary.400}", + "value": "{brand.alt1.400}", "type": "color" }, "dark": { - "value": "{brand.primary.800}", + "value": "{brand.alt1.800}", "type": "color" } }, - "secondary": { + "second": { "light": { - "value": "{brand.secondary.200}", + "value": "{brand.alt2.200}", "type": "color" }, "light-hover": { - "value": "{brand.secondary.300}", + "value": "{brand.alt2.300}", "type": "color" }, "light-active": { - "value": "{brand.secondary.400}", + "value": "{brand.alt2.400}", "type": "color" }, "dark": { - "value": "{brand.secondary.900}", + "value": "{brand.alt2.900}", "type": "color" } }, - "tertiary": { + "third": { "light": { - "value": "{brand.tertiary.200}", + "value": "{brand.alt3.200}", "type": "color" }, "light-hover": { - "value": "{brand.tertiary.300}", + "value": "{brand.alt3.300}", "type": "color" }, "light-active": { - "value": "{brand.tertiary.400}", + "value": "{brand.alt3.400}", "type": "color" }, "dark": { - "value": "{brand.tertiary.800}", + "value": "{brand.alt3.800}", "type": "color" } + }, + "action": { + "first": { + "subtle": { + "value": "{colors.grey.100}", + "type": "color" + }, + "subtle-hover": { + "value": "{colors.grey.200}", + "type": "color" + }, + "default": { + "value": "{colors.blue.900}", + "type": "color" + }, + "hover": { + "value": "rgba({colors.blue.900}, 0.9)", + "type": "color" + }, + "active": { + "value": "rgba({colors.blue.900}, 0.8)", + "type": "color", + "description": "Standard farge for handlinger" + }, + "no_fill": { + "value": "{colors.white}", + "type": "color" + }, + "no_fill-hover": { + "value": "rgba({colors.blue.900}, 0.1)", + "type": "color" + }, + "no_fill-active": { + "value": "rgba({colors.blue.900}, 0.2)", + "type": "color" + } + }, + "second": { + "subtle": { + "value": "{colors.grey.100}", + "type": "color" + }, + "subtle-hover": { + "value": "{colors.grey.200}", + "type": "color" + }, + "default": { + "value": "{colors.blue.900}", + "type": "color" + }, + "hover": { + "value": "rgba({colors.blue.900}, 0.9)", + "type": "color" + }, + "active": { + "value": "rgba({colors.blue.900}, 0.8)", + "type": "color", + "description": "Standard farge for handlinger" + }, + "no_fill": { + "value": "{colors.white}", + "type": "color" + }, + "no_fill-hover": { + "value": "rgba({colors.blue.900}, 0.1)", + "type": "color" + }, + "no_fill-active": { + "value": "rgba({colors.blue.900}, 0.2)", + "type": "color" + } + } } }, "border": { - "primary": { + "first": { "default": { - "value": "{brand.primary.600}", + "value": "{brand.alt1.600}", "type": "color" }, "hover": { - "value": "{brand.primary.700}", + "value": "{brand.alt1.700}", "type": "color" }, "active": { - "value": "{brand.primary.800}", + "value": "{brand.alt1.800}", "type": "color" } }, - "secondary": { + "second": { "default": { - "value": "{brand.secondary.600}", + "value": "{brand.alt2.600}", "type": "color" }, "hover": { - "value": "{brand.secondary.700}", + "value": "{brand.alt2.700}", "type": "color" }, "active": { - "value": "{brand.secondary.800}", + "value": "{brand.alt2.800}", "type": "color" } }, - "tertiary": { + "third": { "default": { - "value": "{brand.tertiary.600}", + "value": "{brand.alt3.600}", "type": "color" }, "hover": { - "value": "{brand.tertiary.700}", + "value": "{brand.alt3.700}", "type": "color" }, "active": { - "value": "{brand.tertiary.800}", + "value": "{brand.alt3.800}", "type": "color" } + }, + "action": { + "first": { + "subtle": { + "value": "{colors.blue.200}", + "type": "color" + }, + "subtle-hover": { + "value": "{colors.blue.400}", + "type": "color" + }, + "default": { + "value": "{colors.blue.700}", + "type": "color" + }, + "hover": { + "value": "{colors.blue.800}", + "type": "color" + }, + "active": { + "value": "{colors.blue.900}", + "type": "color" + } + }, + "second": { + "subtle": { + "value": "{colors.grey.200}", + "type": "color" + }, + "subtle-hover": { + "value": "{colors.grey.300}", + "type": "color" + }, + "default": { + "value": "{colors.blue.900}", + "type": "color" + }, + "hover": { + "value": "{colors.blue.900}", + "type": "color" + }, + "active": { + "value": "{colors.blue.900}", + "type": "color" + } + } + } + }, + "text": { + "action": { + "first": { + "default": { + "value": "{colors.blue.700}", + "type": "color" + }, + "hover": { + "value": "#004e95", + "type": "color" + }, + "active": { + "value": "#00315d", + "type": "color" + }, + "on_action": { + "value": "{colors.white}", + "type": "color" + } + }, + "second": { + "default": { + "value": "{colors.blue.900}", + "type": "color" + }, + "hover": { + "value": "{colors.blue.900}", + "type": "color" + }, + "active": { + "value": "{colors.blue.900}", + "type": "color" + }, + "on_action": { + "value": "{colors.white}", + "type": "color" + } + } } } } diff --git a/design-tokens/README.md b/design-tokens/README.md index 2adbb016b0..30051035ec 100644 --- a/design-tokens/README.md +++ b/design-tokens/README.md @@ -12,6 +12,6 @@ You should use Figma to edit the tokens. You'll need the [Tokens Studio for Figm - Personal Access Token: _your PAT_ - Repository: `digdir/designsystem` - Default Branch: `main` - - File Path: `design-tokens/tokens.json` + - File Path: `design-tokens` You can now "pull from GitHub" (button on top right) to fetch the tokens. When done editing tokens, you should "push to GitHub" (second button on top right). diff --git a/docs-components/DoAndDont/DoAndDont.module.css b/docs-components/DoAndDont/DoAndDont.module.css new file mode 100644 index 0000000000..c44c857648 --- /dev/null +++ b/docs-components/DoAndDont/DoAndDont.module.css @@ -0,0 +1,63 @@ +.wrapper { + display: flex; + flex-direction: column; + box-sizing: border-box; + background-color: var(--fds-semantic-background-subtle); + padding: 24px; + width: calc(50% - (var(--fds-spacing-4) / 2)); + height: 100%; + border-bottom: 10px solid var(--color); + border-radius: var(--fds-spacing-1); + box-shadow: var(--fds-shadow-medium); + margin: 0; +} + +@media (max-width: 600px) { + .wrapper { + width: 100%; + } +} + +.wrapper.landscape { + width: 100%; + max-width: 100%; +} + +.dont { + --color: var(--semantic-surface-danger-default); +} + +.do { + --color: var(--semantic-surface-success-default); +} + +.header { + display: flex; + gap: 16px; + align-items: center; +} + +.icon { + width: 38px; + height: 38px; + border-radius: 50%; + background-color: var(--color); + display: grid; + place-items: center; + color: white; +} + +.icon svg { + width: 24px; + height: 24px; +} + +.description { + color: var(--semantic-text-neutral-default); +} + +.imageWrapper { + margin-top: auto; + display: grid; + place-items: center; +} diff --git a/docs-components/DoAndDont/DoAndDont.tsx b/docs-components/DoAndDont/DoAndDont.tsx new file mode 100644 index 0000000000..54b3bfeb19 --- /dev/null +++ b/docs-components/DoAndDont/DoAndDont.tsx @@ -0,0 +1,93 @@ +import React, { useMemo } from 'react'; +import cn from 'classnames'; +import { Heading, Paragraph } from '@digdir/design-system-react'; +import { CheckmarkIcon, XMarkIcon } from '@navikt/aksel-icons'; + +import styles from './DoAndDont.module.css'; + +const Wrapper = ({ variant, description, image, alt }: WrapperProps) => { + const icon = variant === 'do' ? : ; + const heading = variant === 'do' ? 'Gjør' : 'Unngå'; + + const aspectRatio = useMemo(() => { + return getAspectRatio(image); + }, [image]); + + return ( +
2 && styles.landscape, + )} + > +
+
{icon}
+ + {heading} + +
+
+ {description} +
+ +
+ {alt +
+
+ ); +}; + +export const Do = ({ description, image, alt }: DoAndDontProps) => { + return ( + + ); +}; + +export const Dont = ({ description, image, alt }: DoAndDontProps) => { + return ( + + ); +}; + +const getAspectRatio = (image: string): number => { + const img = new Image(); + img.src = image; + + const w = img.naturalWidth; + const h = img.naturalHeight; + + return w / h; +}; + +type DoAndDontProps = { + description: string; + image: string; + alt?: string; +}; + +type WrapperProps = DoAndDontProps & { + variant: 'do' | 'dont'; +}; diff --git a/docs-components/Stack/Stack.module.css b/docs-components/Stack/Stack.module.css index d6512d185c..ee1e71c7e4 100644 --- a/docs-components/Stack/Stack.module.css +++ b/docs-components/Stack/Stack.module.css @@ -3,7 +3,6 @@ flex-direction: column; justify-content: center; align-items: center; - gap: 1.5rem; flex-wrap: wrap; margin: 24px; } diff --git a/docs-components/Stack/Stack.tsx b/docs-components/Stack/Stack.tsx index 306b6b3ef0..105c48f082 100644 --- a/docs-components/Stack/Stack.tsx +++ b/docs-components/Stack/Stack.tsx @@ -3,9 +3,29 @@ import React from 'react'; import classes from './Stack.module.css'; -export const Stack = (props: HTMLAttributes) => ( +export const Stack = ({ + style, + gap = 'var(--fds-spacing-4)', + direction = 'row', + wrap = 'wrap', + ...rest +}: FlexContainerProps & HTMLAttributes) => (
); + +type FlexContainerProps = { + children: React.ReactNode; + style?: React.CSSProperties; + gap?: string; + direction?: 'row' | 'column' | 'row-reverse' | 'column-reverse'; + wrap?: 'wrap' | 'nowrap' | 'wrap-reverse'; +}; diff --git a/docs-components/Table/TokenTable/TokensTable.tsx b/docs-components/Table/TokenTable/TokensTable.tsx index 91ba854fb6..2d17add130 100644 --- a/docs-components/Table/TokenTable/TokensTable.tsx +++ b/docs-components/Table/TokenTable/TokensTable.tsx @@ -44,6 +44,7 @@ const TokensTable = (tokenTable: TokenTableProps) => { '$' + tokenTable.componentName + '-', ); + // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents const rows: { row: (string | JSX.Element | unknown)[] }[] = []; Object.entries(row).map(([key, value]) => { diff --git a/docs-components/index.ts b/docs-components/index.ts index 98b139586b..c0b364ee3e 100644 --- a/docs-components/index.ts +++ b/docs-components/index.ts @@ -7,4 +7,5 @@ export { } from './Table/TableCells/TableCells'; export { Changelog } from './Changelog/Changelog'; export { Stack } from './Stack/Stack'; +export { Do, Dont } from './DoAndDont/DoAndDont'; export * from './Information/Information'; diff --git a/package.json b/package.json index c98f4a6448..dec0002925 100644 --- a/package.json +++ b/package.json @@ -43,11 +43,10 @@ "@digdir/design-system-tokens": "*", "@etchteam/storybook-addon-css-variables-theme": "^1.5.1", "@next/eslint-plugin-next": "^13.2.4", - "@rollup/plugin-commonjs": "^22.0.2", - "@rollup/plugin-image": "^3.0.1", - "@rollup/plugin-json": "^5.0.2", - "@rollup/plugin-node-resolve": "^14.0.0", - "@rollup/plugin-typescript": "^8.5.0", + "@rollup/plugin-commonjs": "^25.0.4", + "@rollup/plugin-image": "^3.0.2", + "@rollup/plugin-json": "^6.0.0", + "@rollup/plugin-node-resolve": "^15.2.1", "@storybook/addon-a11y": "^7.4.0", "@storybook/addon-essentials": "^7.4.0", "@storybook/addon-interactions": "^7.4.0", @@ -59,24 +58,25 @@ "@storybook/theming": "^7.4.0", "@svgr/cli": "^6.5.1", "@svgr/core": "^6.5.1", - "@svgr/rollup": "^6.5.1", - "@testing-library/jest-dom": "5.16.5", - "@testing-library/react": "^13.4.0", - "@testing-library/user-event": "^14.4.3", + "@svgr/rollup": "^8.1.0", + "@testing-library/jest-dom": "6.1.3", + "@testing-library/react": "^14.0.0", + "@testing-library/user-event": "^14.5.1", "@types/jest": "^29.0.0", "@types/node": "^18.11.11", - "@types/react": "^18.0.9", - "@types/react-dom": "^18.0.4", + "@types/react": "^18.2.0", + "@types/react-dom": "^18.2.0", "@types/rimraf": "^3.0.2", "@types/testing-library__jest-dom": "^5.14.5", - "@typescript-eslint/eslint-plugin": "5.36.1", - "@typescript-eslint/parser": "5.36.1", + "@typescript-eslint/eslint-plugin": "6.7.3", + "@typescript-eslint/parser": "6.7.3", "babel-jest": "^29.5.0", "babel-loader": "^9.1.2", "classnames": "^2.3.1", - "eslint": "8.22.0", + "copyfiles": "^2.4.1", + "eslint": "8.50.0", "eslint-config-prettier": "8.5.0", - "eslint-import-resolver-typescript": "3.5.0", + "eslint-import-resolver-typescript": "3.6.1", "eslint-plugin-import": "2.26.0", "eslint-plugin-jsx-a11y": "6.6.1", "eslint-plugin-prettier": "4.2.1", @@ -94,11 +94,9 @@ "react-markdown": "^8.0.5", "remark-gfm": "^3.0.1", "rimraf": "^5.0.0", - "rollup": "^2.79.0", - "rollup-plugin-dts": "^4.2.2", + "rollup": "^3.29.4", "rollup-plugin-peer-deps-external": "^2.2.4", "rollup-plugin-postcss": "^4.0.2", - "rollup-plugin-terser": "^7.0.2", "storybook": "^7.4.0", "storybook-css-modules": "^1.0.8", "stylelint": "^15.3.0", @@ -106,11 +104,10 @@ "stylelint-config-prettier": "^9.0.5", "stylelint-config-standard": "^31.0.0", "stylelint-prettier": "^3.0.0", - "terser": "^5.16.0", "ts-jest": "^29.1.0", "ts-node": "^10.9.1", "tslib": "^2.4.1", - "typescript": "^4.9.5", + "typescript": "^5.2.2", "typescript-plugin-css-modules": "^5.0.0" } } diff --git a/packages/Overview.mdx b/packages/Overview.mdx index 03257946e0..8ca21c3b60 100644 --- a/packages/Overview.mdx +++ b/packages/Overview.mdx @@ -38,11 +38,11 @@ V1 er klar når følgende komponenter er markert som "✅ Felles": | Search | 🚸 Ikke påbegynt | Figma - Search | [Github - Search](https://github.com/digdir/designsystem/issues/88) | | [Switch](/docs/felles-switch--docs) | ✅ Felles | [Figma - Switch](https://www.figma.com/file/vpM9dqqQPHqU6ogfKp5tlr/Felles-komponenter?type=design&node-id=17755-6024&mode=design&t=ztPUyfbDSQjlpEzv-0) | [Github - Switch](https://github.com/digdir/designsystem/issues/89) | | [Table](/docs/altinn-table--docs) | 🔵 Altinn | Figma - Table | [Github - Table](https://github.com/digdir/designsystem/issues/90) | -| [Tabs](/docs/altinn-tabs--docs) | 🔵 Altinn | [Figma - Tabs](https://www.figma.com/file/vpM9dqqQPHqU6ogfKp5tlr/Felles-komponenter?type=design&node-id=9551%3A54208&t=Rlfq5UyNZBL69dFr-1) | [Github - Tabs](https://github.com/digdir/designsystem/issues/91) | +| [Tabs](/docs/felles-tabs--docs) | ✅ Felles | [Figma - Tabs](https://www.figma.com/file/vpM9dqqQPHqU6ogfKp5tlr/Felles-komponenter?type=design&node-id=9551%3A54208&t=Rlfq5UyNZBL69dFr-1) | [Github - Tabs](https://github.com/digdir/designsystem/issues/91) | | [Tag](/docs/felles-tag--docs) | ✅ Felles | [Figma - Tag](https://www.figma.com/file/vpM9dqqQPHqU6ogfKp5tlr/Felles-komponenter?node-id=10185%3A59053&t=7Q2N4sUdQGhFZrPh-1) | [Github - Tag](https://github.com/digdir/designsystem/issues/322) | -| [Textarea](/docs/altinn-textarea--docs) | 🔵 Altinn | [Figma - Text area](https://www.figma.com/file/vpM9dqqQPHqU6ogfKp5tlr/Felles-komponenter?node-id=6632%3A21873&t=7Q2N4sUdQGhFZrPh-1) | [Github - Textarea](https://github.com/digdir/designsystem/issues/323) | -| [Textfield](/docs/altinn-textfield--docs) | 🔵 Altinn | [Figma - Text Field](https://www.figma.com/file/vpM9dqqQPHqU6ogfKp5tlr/Felles-komponenter?node-id=6632%3A22228&t=7Q2N4sUdQGhFZrPh-1) | [Github - Textfield](https://github.com/digdir/designsystem/issues/92) | -| [ToggleGroup](/docs/altinn-togglebuttongroup--docs) | 🔵 Altinn | Figma - Toggle Group | [Github - ToggleGroup](https://github.com/digdir/designsystem/issues/304) | +| [Textarea](/docs/felles-textarea--docs) | ✅ Felles | [Figma - Text area](https://www.figma.com/file/vpM9dqqQPHqU6ogfKp5tlr/Felles-komponenter?node-id=6632%3A21873&t=7Q2N4sUdQGhFZrPh-1) | [Github - Textarea](https://github.com/digdir/designsystem/issues/323) | +| [Textfield](/docs/felles-textfield--docs) | ✅ Felles | [Figma - Text Field](https://www.figma.com/file/vpM9dqqQPHqU6ogfKp5tlr/Felles-komponenter?node-id=6632%3A22228&t=7Q2N4sUdQGhFZrPh-1) | [Github - Textfield](https://github.com/digdir/designsystem/issues/92) | +| [ToggleGroup](/docs/felles-togglegroup--docs) | ✅ Felles | Figma - Toggle Group | [Github - ToggleGroup](https://github.com/digdir/designsystem/issues/304) | | Tooltip | 🚸 Ikke påbegynt | Figma - Tooltip | [Github - Tooltip](https://github.com/digdir/designsystem/issues/93) | | [Typography](/docs/felles-typography--docs) | ✅ Felles | [Figma - Typography](https://www.figma.com/file/vpM9dqqQPHqU6ogfKp5tlr/Felles-komponenter?node-id=9219%3A49405&t=7Q2N4sUdQGhFZrPh-1) | [Github - Typography](https://github.com/digdir/designsystem/issues/324) | diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md index 3fe4b08d8f..ba801752ea 100644 --- a/packages/react/CHANGELOG.md +++ b/packages/react/CHANGELOG.md @@ -3,6 +3,52 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [0.28.0](https://github.com/digdir/designsystem/compare/@digdir/design-system-react@0.27.0...@digdir/design-system-react@0.28.0) (2023-10-05) + +### Features + +- Add basic SSR support and peerDependecies to `react 18.2.0` ([#864](https://github.com/digdir/designsystem/issues/864)) ([d512ee2](https://github.com/digdir/designsystem/commit/d512ee26e6f50e61588538961dd185b92e3e6654)) +- Change `color` names `primary`, `secondary`, `tertiary` to `first`, `second`, `third` ([#887](https://github.com/digdir/designsystem/issues/887)) ([50f4eee](https://github.com/digdir/designsystem/commit/50f4eee4bf2ce813001ad1e28fa12648149fe677)) +- **DosAndDonts:** Add Do and Dont component ([#857](https://github.com/digdir/designsystem/issues/857)) ([8116d00](https://github.com/digdir/designsystem/commit/8116d00eb8afbb606bd325a7a1695c31bbc3fcbe)) +- **Tabs:** :sparkles: New `Tabs` Component ([#876](https://github.com/digdir/designsystem/issues/876)) ([6ae19e7](https://github.com/digdir/designsystem/commit/6ae19e75e7f874dc7d1acbfe9587c8ffbb29e641)) +- **Tabs:** :wastebasket: Change to Legacy ([#875](https://github.com/digdir/designsystem/issues/875)) ([1863383](https://github.com/digdir/designsystem/commit/186338375861af241c565be4bf86ab9c05d1867b)) +- **ToggleGroup:** Add accessible title for items with only icon ([#897](https://github.com/digdir/designsystem/issues/897)) ([9482315](https://github.com/digdir/designsystem/commit/94823150b5585ba9612fbbfbb70c32818812fcaa)) + +# [0.27.0](https://github.com/digdir/designsystem/compare/@digdir/design-system-react@0.26.0...@digdir/design-system-react@0.27.0) (2023-09-28) + +### Features + +- **Button, Chip, Accordion:** :recycle: Change components to use the same class for focus behaviour ([#868](https://github.com/digdir/designsystem/issues/868)) ([b3fa591](https://github.com/digdir/designsystem/commit/b3fa591d86bbf2b497a618464e3f3af10b852ad6)) +- **ToggleButtonGroup:** :wastebasket: Change to Legacy ([#870](https://github.com/digdir/designsystem/issues/870)) ([3298aba](https://github.com/digdir/designsystem/commit/3298aba96e343af73bcf8b12cfcb64f9cf0a61a0)) +- **ToggleGroup:** ✨ New `ToggleGroup` component ([#813](https://github.com/digdir/designsystem/issues/813)) ([bc45c2e](https://github.com/digdir/designsystem/commit/bc45c2e50a941fdd49028607fa3d94c4876e4cc0)) + +# [0.26.0](https://github.com/digdir/designsystem/compare/@digdir/design-system-react@0.25.1...@digdir/design-system-react@0.26.0) (2023-09-22) + +### Bug Fixes + +- **Textfield:** :lipstick: Style adjustments after feedback ([#852](https://github.com/digdir/designsystem/issues/852)) ([4544f1e](https://github.com/digdir/designsystem/commit/4544f1e96fb90c00360377b2a18998e9bce36f16)) + +### Features + +- **Textarea:** :sparkles: New `Textarea` component ([#851](https://github.com/digdir/designsystem/issues/851)) ([9d9c3ab](https://github.com/digdir/designsystem/commit/9d9c3ab390cea40bd3137845fd2b7fb251c84b7a)) +- **TextArea:** :wastebasket: Change to Legacy ([#853](https://github.com/digdir/designsystem/issues/853)) ([9da973f](https://github.com/digdir/designsystem/commit/9da973f9db34576ad89f5d31f07ccfc933f84ee7)) + +## [0.25.1](https://github.com/digdir/designsystem/compare/@digdir/design-system-react@0.25.0...@digdir/design-system-react@0.25.1) (2023-09-22) + +### Bug Fixes + +- **Textfield:** Prop typo ([#848](https://github.com/digdir/designsystem/issues/848)) ([0c59b86](https://github.com/digdir/designsystem/commit/0c59b86f661222e0021311cd5eba6c7aa429ea8c)) + +# [0.25.0](https://github.com/digdir/designsystem/compare/@digdir/design-system-react@0.24.2...@digdir/design-system-react@0.25.0) (2023-09-21) + +### Features + +- **ErrorMessage:** :sparkles: Add new option to toggle error color ([#836](https://github.com/digdir/designsystem/issues/836)) ([8b177f3](https://github.com/digdir/designsystem/commit/8b177f3f25b3c2075d38f8f5e8a438d8727b5c98)) +- **ErrorMessage:** ✨ Add `large` size ([#840](https://github.com/digdir/designsystem/issues/840)) ([9742abf](https://github.com/digdir/designsystem/commit/9742abf1d002967fdfdb6b3caa8f33bb11a85019)) +- **Fieldset, Switch, Radio, Checkbox:** :sparkles: Add `large` size ([#841](https://github.com/digdir/designsystem/issues/841)) ([4e8052f](https://github.com/digdir/designsystem/commit/4e8052fc6a886b68676ca5de0a47d80eadb93656)) +- **Textfield:** :sparkles: New `Textfield` component ([#816](https://github.com/digdir/designsystem/issues/816)) ([0c14cfa](https://github.com/digdir/designsystem/commit/0c14cfa3c6add379ada2f5e11dd2b6a0de05aa56)) +- **TextField:** 🗑️ Change to Legacy ([#838](https://github.com/digdir/designsystem/issues/838)) ([c3d6d2d](https://github.com/digdir/designsystem/commit/c3d6d2d684ff764fe96a92e1852ddf115cf1ec62)) + ## [0.24.2](https://github.com/digdir/designsystem/compare/@digdir/design-system-react@0.24.1...@digdir/design-system-react@0.24.2) (2023-09-19) ### Bug Fixes diff --git a/packages/react/package.json b/packages/react/package.json index 0702c3156d..5250a27ee5 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,9 +1,9 @@ { "name": "@digdir/design-system-react", - "version": "0.24.2", + "version": "0.28.0", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", - "types": "dist/index.d.ts", + "types": "dist/types/index.d.ts", "sideEffects": false, "license": "MIT", "author": "Digdir Designsystem Team", @@ -11,21 +11,25 @@ "dist/**" ], "scripts": { - "build": "yarn run clean && tsc -p tsconfig.build.json && rollup -c", - "clean": "rimraf dist" + "build": "yarn run clean && tsc -p tsconfig.build.json && yarn run copy-files && rollup -c --bundleConfigAsCjs", + "clean": "rimraf dist && rimraf tsc-build", + "copy-files": "copyfiles -u 1 ./src/**/*.css ./tsc-build/" }, "peerDependencies": { - "react": ">=16.8", - "react-dom": ">=16.8" + "react": ">=18.2.0", + "react-dom": ">=18.2.0" }, "publishConfig": { "access": "public" }, "dependencies": { "@altinn/figma-design-tokens": "^6.0.1", - "@digdir/design-system-tokens": "^0.6.1", + "@digdir/design-system-tokens": "^0.8.0", "@floating-ui/react": "0.25.2", "@navikt/aksel-icons": "^3.2.4", "react-number-format": "5.2.2" + }, + "devDependencies": { + "copyfiles": "^2.4.1" } } diff --git a/packages/react/rollup-terser.mjs b/packages/react/rollup-terser.mjs deleted file mode 100644 index a30a1ecf88..0000000000 --- a/packages/react/rollup-terser.mjs +++ /dev/null @@ -1,36 +0,0 @@ -/* -The popular `rollup-terser-plugin` does not work well with Yarn PnP; its -reliance on `jest-worker` makes the build hang — probably related to -https://github.com/facebook/jest/issues/12060. This file provides a -simpler plugin that invokes Terser without Jest workers. -*/ - -import { minify } from 'terser'; - -function terser(terserOptions = {}) { - return { - name: 'terser', - - async renderChunk(code, _chunk, outputOptions) { - const defaultOptions = { - sourceMap: !!outputOptions.sourcemap, - }; - - // eslint-disable-next-line default-case - switch (outputOptions.format) { - case 'es': - case 'esm': - defaultOptions.module = true; - break; - case 'cjs': - defaultOptions.toplevel = true; - break; - } - - const effectiveTerserOptions = { ...defaultOptions, ...terserOptions }; - return await minify(code, effectiveTerserOptions); - }, - }; -} - -export default terser; \ No newline at end of file diff --git a/packages/react/rollup.config.js b/packages/react/rollup.config.js index 3880a91e9d..11d27a698b 100644 --- a/packages/react/rollup.config.js +++ b/packages/react/rollup.config.js @@ -1,34 +1,36 @@ import resolve from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; -import typescript from '@rollup/plugin-typescript'; import json from '@rollup/plugin-json'; import image from '@rollup/plugin-image'; -import dts from 'rollup-plugin-dts'; import postcss from 'rollup-plugin-postcss'; import peerDepsExternal from 'rollup-plugin-peer-deps-external'; import svgr from '@svgr/rollup'; -import terser from './rollup-terser.mjs'; -import packageJson from './package.json'; - -// css files needs to be bundled -const altinnFigmaTokensExceptCss = /@altinn\/figma-design-tokens.*(? - - -### Accordion.Item - - - -### Accordion.Header - - +- Ved å legge innhold i `Accordion` risikerer du at det ikke blir sett av brukerne. Innhold som er viktig bør _ikke_ skjules. +- Ikke legg en `Accordion` inni en annen. -### Accordion.Content +
- + + ## Bruk @@ -55,8 +46,87 @@ import { Accordion } from '@digdir/design-system-react'; ; ``` -## Varianter +## Eksempler -### Kontrollert +
+### Med ramme + +`Accordion` kan vises med ramme. Dette kan passe i tilfeller der accordions ikke fyller hele siden, eller når det kun er en rad. + + + +### Med farger + +`Accordion` kan vises i farger fra ditt brand. + + + +#### Kontrollert + +`Accordion` holder selv orden på når den er lukket/åpen, men kan kontrolleres utenfra. + +
+ +## Retningslinjer + +Tester viser at brukerne sjeldnere ser på skjult innhold, enn det som er synlig direkte på siden. Ikke bruk `Accordion` til å skjule innhold for å gjøre siden "ryddigere". Finn ut om du faktisk må skjule innhold og vær klar over hvorfor du gjør det. Tenk over om det er lurt å vise det viktigste innholdet i åpen status når brukeren kommer inn på siden. + +Hvis innholdet er for langt eller komplisert, bør du heller omformulere teksten og/eller eventuelt fordele den på flere sider. + +### Egnet til + +- samle innhold som er litt lengre +- gjøre det frivillig å se innhold som er litt mindre viktig enn alltid synlig innhold +- vise ofte stilte spørsmål +- vise tilleggsinformasjon som kan være til hjelp for brukerne + +### Ikke egnet til + +- vise små mengder innhold +- vise informasjon hvis det bare er ett element +- vise viktig innhold som alle bør se når de kommer til siden (for eksempel feilmeldinger) +- gi mer informasjon om et spørsmål i et skjema – det innholdet bør brukeren se med en gang +- velge mellom ulike alternativer +- skjule innhold fra søkeresultater eller oversikter/tabeller +- dele opp en logisk flyt eller en rekke med handlinger, da bør du heller bruke en trinnvis liste + +### Unngå + +- Ikke legg en `Accordion` inni en annen, det vi kaller nøstede lister. + +
+ +## Tekst i komponenten + +Accordion skal brukes til maksimalt to avsnitt innenfor hvert nedtrekk. Sørg for at overskriften gir en god beskrivelse av hva innholdet i accordion er. En tydelig og beskrivende overskrift skal gjøre brukerne nysgjerrige på innholdet. Overskriftene til accordion kan ha stor betydning for om brukerne finner det de trenger, om innholdet blir lest og om det kan regnes som tilgjengelig for alle brukere. «Vis mer» eller «Les mer her» er ikke gode nok titler. Har du en accordion med mange nedtrekk, kan du ha en hovedoverskrift eller temaoverskrift over hele listen. + +
+ +## Tilgjengelighet + +[`Chevron`](https://aksel.nav.no/ikoner/ChevronDown)-ikonet er bevisst plassert til venstre for teksten, av hensyn til brukeren med nedsatt synsfelt. Der er det lettere for brukeren å se det (fordi vi leser fra venstre). Mange brukere tror at de må peke på og velge ikonet for å åpne. + +Ikke plasser andre interaktive elementer inn i `Accordion`-header, da hele raden skal være klikkbar. Ikonet og teksten skal _ikke_ lenke til ulike handlinger (for eksempel at teksten går videre til en side, mens ikonet åpner listen). Brukerne forventer ikke at ikon og tekst skal gi ulikt resultat når de velger dem. + +`Tab` : Flytter fokus til neste element som kan ha fokus \ +`Shift` + `Tab` : Flytter fokus til forrige element som kan ha fokus \ +`Space` : Aktiverer knapp \ +`Enter` : Aktiverer knapp + +
+ +## Andre props + +### Accordion.Item + + + +### Accordion.Header + + + +### Accordion.Content + + diff --git a/packages/react/src/components/Accordion/Accordion.module.css b/packages/react/src/components/Accordion/Accordion.module.css index fcd18e92b1..c4077529d8 100644 --- a/packages/react/src/components/Accordion/Accordion.module.css +++ b/packages/react/src/components/Accordion/Accordion.module.css @@ -6,21 +6,23 @@ --fdsc-accordion-header-padding-bottom: var(--fds-spacing-4); --fdsc-accordion-header-padding-left: var(--fds-spacing-5); --fdsc-accordion-header-bg-neutral: var(--fds-semantic-surface-neutral-default); - --fdsc-accordion-header-bg-neutral-active: var(--fds-semantic-surface-action-primary-no_fill-hover); + --fdsc-accordion-header-bg-neutral-active: var(--fds-semantic-surface-action-first-no_fill-hover); --fdsc-accordion-header-bg-subtle: var(--fds-semantic-surface-neutral-subtle); --fdsc-accordion-header-bg-subtle-hover: var(--fds-semantic-surface-neutral-subtle-hover); - --fdsc-accordion-header-bg-primary: var(--fds-semantic-surface-primary-light); - --fdsc-accordion-header-bg-primary-hover: var(--fds-semantic-surface-primary-light-hover); - --fdsc-accordion-header-bg-secondary: var(--fds-semantic-surface-secondary-light); - --fdsc-accordion-header-bg-secondary-hover: var(--fds-semantic-surface-secondary-light-hover); - --fdsc-accordion-header-bg-tertiary: var(--fds-semantic-surface-tertiary-light); - --fdsc-accordion-header-bg-tertiary-hover: var(--fds-semantic-surface-tertiary-light-hover); + --fdsc-accordion-header-bg-primary: var(--fds-semantic-surface-first-light); + --fdsc-accordion-header-bg-primary-hover: var(--fds-semantic-surface-first-light-hover); + --fdsc-accordion-header-bg-secondary: var(--fds-semantic-surface-second-light); + --fdsc-accordion-header-bg-secondary-hover: var(--fds-semantic-surface-second-light-hover); + --fdsc-accordion-header-bg-tertiary: var(--fds-semantic-surface-third-light); + --fdsc-accordion-header-bg-tertiary-hover: var(--fds-semantic-surface-third-light-hover); --fdsc-accordion-header-border: var(--fds-semantic-border-neutral-subtle); --fdsc-accordion-header-border-inverted: var(--fds-semantic-border-on_inverted-default); --fdsc-accordion-header-shadow-focus: 2px 2px 3px var(--fds-semantic-border-neutral-subtle); - --fdsc-accordion-header-color-hover: var(--fds-semantic-text-action-primary-default); + --fdsc-accordion-header-color-hover: var(--fds-semantic-text-action-first-default); --fdsc-accordion-content-border: var(--fds-semantic-border-neutral-subtle); --fdsc-accordion-content-border-open: var(--fds-semantic-border-neutral-strong); + + border-bottom: 1px solid var(--fdsc-accordion-content-border); } .border { @@ -41,10 +43,6 @@ text-overflow: ellipsis; } -.item:last-child .contentWrapper { - border-bottom: 1px solid var(--fdsc-accordion-content-border); -} - .header { margin: 0; } @@ -67,20 +65,6 @@ padding-left: var(--fdsc-accordion-header-padding-left); } -.header > button:focus-visible, -.header > button:focus { - --fdsc-focus-border-width: 3px; - - outline: var(--fdsc-focus-border-width) solid var(--fds-semantic-border-focus-outline); - outline-offset: var(--fdsc-focus-border-width); - box-shadow: 0 0 0 var(--fdsc-focus-border-width) var(--fds-semantic-border-neutral-strong); - border-radius: var(--fds-border_radius-interactive); -} - -.header > .button:focus:not(:focus-visible) { - outline: none; -} - @media (hover: hover) and (pointer: fine) { .header > button:hover { color: var(--fdsc-accordion-header-color-hover); @@ -101,18 +85,18 @@ background: var(--fdsc-accordion-header-bg-subtle); } -.accordion.primary, -.accordion.primary > .item > .header > button { +.accordion.first, +.accordion.first > .item > .header > button { background: var(--fdsc-accordion-header-bg-primary); } -.accordion.secondary, -.accordion.secondary > .item > .header > button { +.accordion.second, +.accordion.second > .item > .header > button { background: var(--fdsc-accordion-header-bg-secondary); } -.accordion.tertiary, -.accordion.tertiary > .item > .header > button { +.accordion.third, +.accordion.third > .item > .header > button { background: var(--fdsc-accordion-header-bg-tertiary); } @@ -120,9 +104,9 @@ border-top: 0; } -.accordion.primary > .item:not(:first-child) > .header > button, -.accordion.secondary > .item:not(:first-child) > .header > button, -.accordion.tertiary > .item:not(:first-child) > .header > button { +.accordion.first > .item:not(:first-child) > .header > button, +.accordion.second > .item:not(:first-child) > .header > button, +.accordion.third > .item:not(:first-child) > .header > button { border-top: 1px solid var(--fdsc-accordion-header-border-inverted); } @@ -131,15 +115,15 @@ background: var(--fdsc-accordion-header-bg-subtle-hover); } - .accordion.primary > .item > .header > button:hover { + .accordion.first > .item > .header > button:hover { background: var(--fdsc-accordion-header-bg-primary-hover); } - .accordion.secondary > .item > .header > button:hover { + .accordion.second > .item > .header > button:hover { background: var(--fdsc-accordion-header-bg-secondary-hover); } - .accordion.tertiary > .item > .header > button:hover { + .accordion.third > .item > .header > button:hover { background: var(--fdsc-accordion-header-bg-tertiary-hover); } } @@ -149,9 +133,9 @@ background-color: var(--fdsc-accordion-header-bg-neutral-active); } -.accordion.primary > .item.open > .header > button, -.accordion.secondary > .item.open > .header > button, -.accordion.tertiary > .item.open > .header > button { +.accordion.first > .item.open > .header > button, +.accordion.second > .item.open > .header > button, +.accordion.third > .item.open > .header > button { background-color: rgba(0 0 0 / 0.03); } diff --git a/packages/react/src/components/Accordion/Accordion.stories.tsx b/packages/react/src/components/Accordion/Accordion.stories.tsx index 2b643d0219..a4e69c91fb 100644 --- a/packages/react/src/components/Accordion/Accordion.stories.tsx +++ b/packages/react/src/components/Accordion/Accordion.stories.tsx @@ -1,6 +1,8 @@ import React, { useState } from 'react'; import type { Meta, StoryFn } from '@storybook/react'; +import { Button, Link } from '../'; + import { Accordion } from '.'; export default { @@ -14,20 +16,62 @@ export default { export const Preview: StoryFn = (args) => ( - Hva er Lorem Ipsum? + + Hvem kan registrere seg i Frivillighetsregisteret? + + + For å kunne bli registrert i Frivillighetsregisteret, må organisasjonen + drive frivillig virksomhet. Det er bare foreninger, stiftelser og + aksjeselskap som kan registreres. Virksomheten kan ikke dele ut midler + til fysiske personer. Virksomheten må ha et styre. + + + + + Hvordan går jeg fram for å registrere i Frivillighetsregisteret? + + + Virksomheten må være registrert i Enhetsregisteret før den kan bli + registrert i Frivillighetsregisteret. Du kan registrere i begge + registrene samtidig i Samordnet registermelding. + + + +); + +export const AccordionBorder: StoryFn = () => ( + + + Vedlegg + Vedlegg 1, vedlegg 2, vedlegg 3 + + +); + +export const AccordionColor: StoryFn = () => ( + + + + Hvordan får jeg tildelt et jegernummer? + - Lorem Ipsum er rett og slett dummytekst fra og for trykkeindustrien. - Lorem Ipsum har vært bransjens standard for dummytekst helt siden - 1500-tallet, da en ukjent boktrykker stokket en mengde bokstaver for å - lage et prøveeksemplar av en bok. + Du vil automatisk få tildelt jegernummer og bli registrert i + Jegerregisteret når du har bestått jegerprøven. - Hvor kommer det fra? + + Jeg har glemt jegernummeret mitt. Hvor finner jeg dette? + - I motsetning til hva mange tror, er ikke Lorem Ipsum bare tilfeldig - tekst. Dets røtter springer helt tilbake til et stykke klassisk latinsk - litteratur fra 45 år f.kr., hvilket gjør det over 2000 år gammelt. + Du kan finne dette ved å logge inn på{' '} + Min jegerside @@ -41,22 +85,48 @@ Preview.args = { export const Controlled: StoryFn = () => { const [open, setOpen] = useState(false); - const [open2, setOpen2] = useState(false); return ( - - - setOpen(!open)}> - Accordion header text - - Accordion content - - - setOpen2(!open2)}> - Accordion header text - - Accordion content - - + <> + +
+ + + setOpen(!open)}> + Enkeltpersonforetak + + + Skal du starte for deg selv? Enkeltpersonforetak er ofte den + enkleste måten å etablere bedrift på. Denne organisasjonsformen har + både fordeler og ulemper. Det gir deg stor grad av frihet, men kan + også gi betydelig risiko fordi du har personlig ansvar for + økonomien. + + + + setOpen(!open)}> + Aksjeselskap (AS) + + + Planlegger du å starte næringsvirksomhet alene eller sammen med + andre? Innebærer næringsvirksomheten en økonomisk risiko? Vil du ha + rettigheter som arbeidstaker og muligheten til at andre kan + investere i selskapet ditt? Da kan aksjeselskap være en + hensiktsmessig organisasjonsform. + + + + setOpen(!open)}> + Ansvarlig selskap (ANS/DA) + + + Er dere minst to personer som skal starte opp egen virksomhet? + Samarbeider du godt med den/de som du skal starte opp sammen med? + Krever virksomheten få investeringer og tar du liten økonomisk + risiko? Da kan du vurdere å etablere et ansvarlig selskap. + + + + ); }; diff --git a/packages/react/src/components/Accordion/Accordion.tsx b/packages/react/src/components/Accordion/Accordion.tsx index e8a0f626cb..642b688dc8 100644 --- a/packages/react/src/components/Accordion/Accordion.tsx +++ b/packages/react/src/components/Accordion/Accordion.tsx @@ -6,26 +6,27 @@ import classes from './Accordion.module.css'; export type AccordionProps = { /** Accordion background color */ - color?: 'primary' | 'secondary' | 'tertiary' | 'neutral' | 'subtle'; + color?: 'first' | 'second' | 'third' | 'neutral' | 'subtle'; /** Show border */ border?: boolean; /** Instances of `Accordion.Item` */ children: React.ReactNode; } & HTMLAttributes; -export const Accordion = forwardRef( - ({ border = false, color = 'neutral', className, ...rest }, ref) => ( -
- ), -); +export const Accordion = forwardRef< + HTMLDivElement, + AccordionProps & { children: React.ReactNode } +>(({ border = false, color = 'neutral', className, ...rest }, ref) => ( +
+)); diff --git a/packages/react/src/components/Accordion/AccordionContent/AccordionContent.tsx b/packages/react/src/components/Accordion/AccordionContent/AccordionContent.tsx index 930b1868a5..9716e4fb2b 100644 --- a/packages/react/src/components/Accordion/AccordionContent/AccordionContent.tsx +++ b/packages/react/src/components/Accordion/AccordionContent/AccordionContent.tsx @@ -29,7 +29,6 @@ export const AccordionContent = forwardRef< +
+ + + + Tab 1 + + } + > + Tab 2 + + } + > + Tab 3 + + + content 1 + content 2 + content 3 + + + ); }; diff --git a/packages/react/src/components/Tabs/Tabs.test.tsx b/packages/react/src/components/Tabs/Tabs.test.tsx index 2c5578c11f..c1e9453fb8 100644 --- a/packages/react/src/components/Tabs/Tabs.test.tsx +++ b/packages/react/src/components/Tabs/Tabs.test.tsx @@ -1,331 +1,68 @@ -import assert from 'assert'; - import React from 'react'; -import { act, screen, render as renderRtl } from '@testing-library/react'; +import { render, screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; -import { lastItem } from '../../utils/arrayUtils'; - -import type { TabItem, TabsProps } from './Tabs'; -import { Tabs } from './Tabs'; +import { Tabs } from '.'; const user = userEvent.setup(); -// Test data: -const itemInfo = [ - { - name: 'Item 1', - textContent: 'Lorem ipsum dolor sit amet.', - value: 'item1', - }, - { - name: 'Item 2', - textContent: 'Etiam ac magna pretium, laoreet.', - value: 'item2', - }, - { - name: 'Item 3', - textContent: 'Phasellus convallis porta commodo. Vivamus.', - value: 'item3', - }, -]; -const items: TabItem[] = itemInfo.map((item) => ({ - name: item.name, - content:

{item.textContent}

, -})); -const itemsWithValues: TabItem[] = itemInfo.map((item) => ({ - name: item.name, - content:

{item.textContent}

, - value: item.value, -})); -const defaultProps: TabsProps = { - items, -}; - describe('Tabs', () => { - it('Renders expected elements', () => { - render(); - expect(getTablist()).toBeInTheDocument(); - expect(getTabs()).toHaveLength(items.length); - expect(getTabpanel()).toBeInTheDocument(); - }); - - it('Selects first tab by default', () => { - render(); - expectSelected(getTab(0)); - expectNotSelected(getTab(1)); - expectNotSelected(getTab(2)); - expect(getTabpanel()).toHaveTextContent(itemInfo[0].textContent); - }); - - it('Initially selects tab with name given in the activeTab property if values are not set', () => { - render({ activeTab: items[1].name }); - expectSelected(getTab(1)); - expectNotSelected(getTab(0)); - expectNotSelected(getTab(2)); - expect(getTabpanel()).toHaveTextContent(itemInfo[1].textContent); - }); - - it('Initially selects tab with value given in the activeTab property if values are set', () => { - render({ items: itemsWithValues, activeTab: itemsWithValues[1].value }); - expectSelected(getTab(1)); - expectNotSelected(getTab(0)); - expectNotSelected(getTab(2)); - expect(getTabpanel()).toHaveTextContent(itemInfo[1].textContent); - }); - - it('Sets given tab id on tab', () => { - const tabId = 'some-unique-tab-id'; - render({ items: [...items, { tabId, name: 'Item 4', content: }] }); - expect(getLastTab()).toHaveAttribute('id', tabId); - }); - - it('Sets given panel id on tab panel', () => { - const panelId = 'some-unique-panel-id'; - const textContent = 'In dignissim risus enim, sed.'; - const content =

{textContent}

; - const tabs = [...items, { panelId, name: 'Item 4', content }]; - render({ items: tabs }); - expect(document.getElementById(panelId)).toHaveTextContent(textContent); - }); - - it('Links corresponding tabs and panels to each other with accessibility attributes', () => { - render(); - items.forEach((_, i) => { - const panelId = getTab(i).getAttribute('aria-controls'); - const panel = screen.getByLabelText(items[i].name); - expect(panel).toHaveAttribute('id', panelId); - }); - }); - - it('Selects and focuses on tab when user clicks on it', async () => { - render(); - for (let i = 0; i < items.length; i++) { - await act(() => user.click(getTab(i))); - expectSelectedIndex(i); - expect(getTab(i)).toHaveFocus(); - } - }); - - it('Does not focus on any tab by default', () => { - render(); - getTabs().forEach((tab) => expect(tab).not.toHaveFocus()); - }); - - it('Focuses on the first tab when user presses the tab key', async () => { - const { container } = render(); - await act(() => user.click(container)); - await act(() => user.tab()); - expect(getTab(0)).toHaveFocus(); - }); - - it('Moves focus out when one tab has focus and user presses the tab key', async () => { - render(); - await act(() => user.click(getTab(1))); - expect(getTab(1)).toHaveFocus(); - await act(() => user.tab()); - getTabs().forEach((tab) => expect(tab).not.toHaveFocus()); - }); - - it('Moves focus to the right when user presses the right arrow key', async () => { - render(); - await act(() => user.click(getTab(0))); - expect(getTab(0)).toHaveFocus(); - await act(() => user.keyboard('{ArrowRight}')); - expect(getTab(1)).toHaveFocus(); - await act(() => user.keyboard('{ArrowRight}')); - expect(getTab(2)).toHaveFocus(); - }); - - it('Moves focus to the left when user presses the left arrow key', async () => { - render(); - await act(() => user.click(getTab(2))); - expect(getTab(2)).toHaveFocus(); - await act(() => user.keyboard('{ArrowLeft}')); - expect(getTab(1)).toHaveFocus(); - await act(() => user.keyboard('{ArrowLeft}')); - expect(getTab(0)).toHaveFocus(); - }); - - it('Moves focus to the first tab when the last tab is focused and user presses the right arrow key', async () => { - render(); - await act(() => user.click(getLastTab())); - expect(getLastTab()).toHaveFocus(); - await act(() => user.keyboard('{ArrowRight}')); - expect(getTab(0)).toHaveFocus(); - }); - - it('Moves focus to the last tab when the first tab is focused and user presses the left arrow key', async () => { - render(); - await act(() => user.click(getTab(0))); - expect(getTab(0)).toHaveFocus(); - await act(() => user.keyboard('{ArrowLeft}')); - expect(getLastTab()).toHaveFocus(); - }); - - it('Selects tab when user navigates with arrow keys and presses the enter key', async () => { - render(); - await act(() => user.click(getTab(0))); - await act(() => user.keyboard('{ArrowRight}')); - await act(() => user.keyboard('{Enter}')); - expectSelected(getTab(1)); - }); - - it('Selects tab when user navigates with arrow keys and presses the space key', async () => { - render(); - await act(() => user.click(getTab(0))); - await act(() => user.keyboard('{ArrowRight}')); - await act(() => user.keyboard('{Space}')); - expectSelected(getTab(1)); - }); - - it('Throws error if item values are not set and names are not unique', () => { - const renderFn = () => { - render({ items: [...items, { name: items[0].name, content:

}] }); - }; - jest.spyOn(console, 'error').mockImplementation(jest.fn()); // Keeps the console output clean - expect(renderFn).toThrow('Each tab value must be unique.'); - }); - - it('Throws error if item values are set, but not unique', () => { - const renderFn = () => { - render({ - items: [ - ...itemsWithValues, - { name: 'Item 4', content:

, value: itemsWithValues[0].value }, - ], - }); - }; - jest.spyOn(console, 'error').mockImplementation(jest.fn()); // Keeps the console output clean - expect(renderFn).toThrow('Each tab value must be unique.'); - }); - - it('Throws error if the value given in activeTab is not present among the item names and item values are not given', () => { - const renderFn = () => { - render({ activeTab: 'Some name that is not in the list' }); - }; - jest.spyOn(console, 'error').mockImplementation(jest.fn()); // Keeps the console output clean - const error = 'The given active tab value must exist in the list of items.'; - expect(renderFn).toThrow(error); - }); - - it('Throws error if the value given in activeTab is not present among the item values if they are given', () => { - const renderFn = () => { - render({ - items: itemsWithValues, - activeTab: 'Some value that is not in the list', - }); - }; - jest.spyOn(console, 'error').mockImplementation(jest.fn()); // Keeps the console output clean - const error = 'The given active tab value must exist in the list of items.'; - expect(renderFn).toThrow(error); - }); - - it('Switches selected tab when rerendered with a new name in the activeTab property and values are not set', () => { - const { rerender } = render(); - rerender( - , + test('has passed size to TabItems', () => { + render( + + + Tab 1 + Tab 2 + + content 1 + content 2 + , ); - expectSelected(getTab(1)); - }); - it('Switches selected tab when rerendered with a new value in the activeTab property and values are set', () => { - const { rerender } = render(); - rerender( - , + const tab1 = screen.getByRole('tab', { name: 'Tab 1' }); + const tab2 = screen.getByRole('tab', { name: 'Tab 2' }); + expect(tab1).toHaveClass('medium'); + expect(tab2).toHaveClass('medium'); + }); + + test('can navigate tabs with keyboard', async () => { + render( + + + Tab 1 + Tab 2 + + content 1 + content 2 + , ); - expectSelected(getTab(1)); - }); - - it("Calls the onChange function with the selected tab's name as a parameter when user selects a tab using the mouse and values are not set", async () => { - const onChange = jest.fn(); - render({ onChange }); - await act(() => user.click(getTab(1))); - expect(onChange).toHaveBeenCalledTimes(1); - expect(onChange).toHaveBeenCalledWith(items[1].name); - }); - - it("Calls the onChange function with the selected tab's value as a parameter when user selects a tab using the mouse and values are set", async () => { - const onChange = jest.fn(); - render({ items: itemsWithValues, onChange }); - await act(() => user.click(getTab(1))); - expect(onChange).toHaveBeenCalledTimes(1); - expect(onChange).toHaveBeenCalledWith(itemsWithValues[1].value); - }); - - it("Calls the onChange function with the selected tab's name as a parameter when user selects a tab using the enter key and values are not set", async () => { - const onChange = jest.fn(); - render({ onChange }); - await act(() => user.click(getTab(0))); - await act(() => user.keyboard('{ArrowRight}')); - await act(() => user.keyboard('{Enter}')); - expect(onChange).toHaveBeenCalledTimes(1); - expect(onChange).toHaveBeenCalledWith(items[1].name); - }); - it("Calls the onChange function with the selected tab's value as a parameter when user selects a tab using the enter key and values are set", async () => { - const onChange = jest.fn(); - render({ items: itemsWithValues, onChange }); - await act(() => user.click(getTab(0))); - await act(() => user.keyboard('{ArrowRight}')); - await act(() => user.keyboard('{Enter}')); - expect(onChange).toHaveBeenCalledTimes(1); - expect(onChange).toHaveBeenCalledWith(itemsWithValues[1].value); - }); - - it("Calls the onChange function with the selected tab's name as a parameter when user selects a tab using the space key and values are not set", async () => { - const onChange = jest.fn(); - render({ onChange }); - await act(() => user.click(getTab(0))); - await act(() => user.keyboard('{ArrowRight}')); - await act(() => user.keyboard('{Space}')); - expect(onChange).toHaveBeenCalledTimes(1); - expect(onChange).toHaveBeenCalledWith(items[1].name); - }); + const tab1 = screen.getByRole('tab', { name: 'Tab 1' }); + const tab2 = screen.getByRole('tab', { name: 'Tab 2' }); + await user.tab(); + expect(tab1).toHaveFocus(); + await user.type(tab1, '{arrowright}'); + expect(tab2).toHaveFocus(); + await user.type(tab2, '{arrowleft}'); + expect(tab1).toHaveFocus(); + }); + + test('renders content based on value', async () => { + render( + + + Tab 1 + Tab 2 + + content 1 + content 2 + , + ); - it("Calls the onChange function with the selected tab's value as a parameter when user selects a tab using the space key and values are set", async () => { - const onChange = jest.fn(); - render({ items: itemsWithValues, onChange }); - await act(() => user.click(getTab(0))); - await act(() => user.keyboard('{ArrowRight}')); - await act(() => user.keyboard('{Space}')); - expect(onChange).toHaveBeenCalledTimes(1); - expect(onChange).toHaveBeenCalledWith(itemsWithValues[1].value); + expect(screen.queryByText('content 1')).toBeVisible(); + expect(screen.queryByText('content 2')).not.toBeInTheDocument(); + await user.click(screen.getByRole('tab', { name: 'Tab 2' })); + expect(screen.queryByText('content 2')).toBeVisible(); + expect(screen.queryByText('content 1')).not.toBeInTheDocument(); }); }); - -const render = (props?: Partial) => { - return renderRtl( - , - ); -}; - -const getTablist = () => screen.getByRole('tablist'); -const getTabs = () => screen.getAllByRole('tab'); -const getTab = (index: number) => getTabs()[index]; -const getLastTab = () => { - const last = lastItem(getTabs()); - assert(last !== undefined); - return last; -}; -const getTabpanel = () => screen.getByRole('tabpanel'); - -const expectSelected = (tab: HTMLElement) => - expect(tab).toHaveAttribute('aria-selected', 'true'); -const expectNotSelected = (tab: HTMLElement) => - expect(tab).toHaveAttribute('aria-selected', 'false'); -const expectSelectedIndex = (index: number) => - getTabs().forEach((tab, i) => { - if (index === i) expectSelected(tab); - else expectNotSelected(tab); - }); diff --git a/packages/react/src/components/Tabs/Tabs.tsx b/packages/react/src/components/Tabs/Tabs.tsx index 21d2bb15ed..d59e9d1bd1 100644 --- a/packages/react/src/components/Tabs/Tabs.tsx +++ b/packages/react/src/components/Tabs/Tabs.tsx @@ -1,141 +1,75 @@ -import type { KeyboardEventHandler } from 'react'; -import React, { useEffect, useId, useRef, useState } from 'react'; -import cn from 'classnames'; +import type { HTMLAttributes } from 'react'; +import React, { createContext, forwardRef, useState } from 'react'; -import { useUpdate } from '../../hooks'; -import { areItemsUnique } from '../../utils/arrayUtils'; - -import classes from './Tabs.module.css'; - -export interface TabItem { - name: string; - content: React.ReactNode; - tabId?: string; - panelId?: string; +export type TabsProps = { + /** Controlled state for `Tabs` component. */ value?: string; -} - -export interface TabsProps { - activeTab?: string; - items: TabItem[]; - onChange?: (name: string) => void; -} - -const validId = (str: string) => str.replace(/\s/, '_'); - -const Tabs = ({ activeTab, items, onChange }: TabsProps) => { - const idBase = useId(); - - // Generate values for undefined properties - const tabs: Required[] = items.map( - ({ - name, - content, - value: optionalValue, - tabId: optionalTabId, - panelId: optionalPanelId, - }) => { - const value = optionalValue ?? name; - const tabId = optionalTabId ?? idBase + validId(value) + '-tab'; - const panelId = optionalPanelId ?? idBase + validId(value) + '-panel'; - return { name, content, value, tabId, panelId }; - }, - ); - - if (!areItemsUnique(tabs.map(({ value }) => value))) { - throw Error('Each tab value must be unique.'); - } - if (activeTab !== undefined && !tabs.some((tab) => tab.value === activeTab)) { - throw Error('The given active tab value must exist in the list of items.'); - } - - const findTabIndexByValue = (value: string) => - tabs.findIndex((tab) => tab.value === value); - const initialTab = activeTab ?? tabs[0].value; - const [visiblePanel, setVisiblePanel] = useState(initialTab); - const [focusIndex, setFocusIndex] = useState( - findTabIndexByValue(initialTab), - ); - useEffect(() => setVisiblePanel(initialTab), [initialTab]); - const tablistRef = useRef(null); - const lastIndex = tabs.length - 1; - - useUpdate(() => { - tablistRef.current - ?.querySelectorAll('[role="tab"]') - [focusIndex].focus(); - }, [focusIndex]); - - const selectTab = (value: string) => { - visiblePanel !== value && onChange && onChange(value); - setVisiblePanel(value); - setFocusIndex(findTabIndexByValue(value)); - }; - - const moveFocusRight = () => - focusIndex !== undefined && - setFocusIndex(focusIndex === lastIndex ? 0 : focusIndex + 1); - const moveFocusLeft = () => - focusIndex !== undefined && - setFocusIndex(focusIndex === 0 ? lastIndex : focusIndex - 1); - - const onKeyDown = - (name: string) => (event: Parameters[0]) => { - switch (event.key) { - case 'ArrowRight': - moveFocusRight(); - break; - case 'ArrowLeft': - moveFocusLeft(); - break; - case 'Space': - selectTab(name); - } - }; + /** Default value. */ + defaultValue?: string; + /** Callback with selected `TabItem` `value` */ + onChange?: (value: string) => void; + /** Changes items size and paddings */ + size?: 'small' | 'medium' | 'large'; +} & Omit, 'onChange' | 'value'>; + +/** `Tabs` component. + * @example + * ```tsx + * console.log(value)}> + * + * Tab 1 + * Tab 2 + * Tab 3 + * + * content 1 + * content 2 + * content 3 + * + * ``` + */ +export type TabsContextProps = { + value?: string; + defaultValue?: string; + onChange?: (value: string) => void; + size?: 'small' | 'medium' | 'large'; +}; - return ( -

-
({}); + +export const Tabs = forwardRef( + ( + { children, value, defaultValue, onChange, size = 'medium', ...rest }, + ref, + ) => { + const isControlled = value !== undefined; + const [uncontrolledValue, setUncontrolledValue] = useState< + string | undefined + >(defaultValue); + + let onValueChange = onChange; + if (!isControlled) { + onValueChange = (newValue: string) => { + setUncontrolledValue(newValue); + onChange?.(newValue); + }; + value = uncontrolledValue; + } + return ( + - {tabs.map((tab, i) => { - const isSelected = tab.value === visiblePanel; - return ( - - ); - })} -
-
- {tabs.map((tab) => ( - ))} -
- ); -}; - -Tabs.displayName = 'Tabs'; - -export { Tabs }; + + ); + }, +); diff --git a/packages/react/src/components/Tabs/index.ts b/packages/react/src/components/Tabs/index.ts index 10fb61972b..0623eae158 100644 --- a/packages/react/src/components/Tabs/index.ts +++ b/packages/react/src/components/Tabs/index.ts @@ -1,2 +1,26 @@ -export { Tabs } from './Tabs'; -export type { TabsProps, TabItem } from './Tabs'; +import { Tabs as TabsRoot } from './Tabs'; +import { Tab } from './Tab'; +import { TabList } from './TabList'; +import { TabContent } from './TabContent'; + +export type { TabsProps } from './Tabs'; +export type { TabProps } from './Tab'; +export type { TabContentProps } from './TabContent'; + +type TabsComponent = typeof TabsRoot & { + Tab: typeof Tab; + List: typeof TabList; + Content: typeof TabContent; +}; + +const Tabs = TabsRoot as TabsComponent; + +Tabs.Tab = Tab; +Tabs.List = TabList; +Tabs.Content = TabContent; + +Tabs.Tab.displayName = 'Tabs.Tab'; +Tabs.List.displayName = 'Tabs.List'; +Tabs.Content.displayName = 'Tabs.Content'; + +export { Tabs, Tab, TabList, TabContent }; diff --git a/packages/react/src/components/Tag/Tag.module.css b/packages/react/src/components/Tag/Tag.module.css index 8537fd2f15..323ab48f5c 100644 --- a/packages/react/src/components/Tag/Tag.module.css +++ b/packages/react/src/components/Tag/Tag.module.css @@ -64,21 +64,21 @@ --fdsc-tag-text: var(--fds-semantic-text-danger-on_danger_subtle); } -.outlined.primary { - --fdsc-tag-border: var(--fds-semantic-surface-primary-dark); - --fdsc-tag-background: var(--fds-semantic-surface-primary-light); +.outlined.first { + --fdsc-tag-border: var(--fds-semantic-surface-first-dark); + --fdsc-tag-background: var(--fds-semantic-surface-first-light); --fdsc-tag-text: var(--fds-semantic-text-neutral-default); } -.outlined.secondary { - --fdsc-tag-border: var(--fds-semantic-surface-secondary-dark); - --fdsc-tag-background: var(--fds-semantic-surface-secondary-light); +.outlined.second { + --fdsc-tag-border: var(--fds-semantic-surface-second-dark); + --fdsc-tag-background: var(--fds-semantic-surface-second-light); --fdsc-tag-text: var(--fds-semantic-text-neutral-default); } -.outlined.tertiary { - --fdsc-tag-border: var(--fds-semantic-surface-tertiary-dark); - --fdsc-tag-background: var(--fds-semantic-surface-tertiary-light); +.outlined.third { + --fdsc-tag-border: var(--fds-semantic-surface-third-dark); + --fdsc-tag-background: var(--fds-semantic-surface-third-light); --fdsc-tag-text: var(--fds-semantic-text-neutral-default); } @@ -112,20 +112,20 @@ --fdsc-tag-text: var(--fds-semantic-text-danger-on_danger); } -.filled.primary { - --fdsc-tag-border: var(--fds-semantic-surface-primary-dark); - --fdsc-tag-background: var(--fds-semantic-surface-primary-dark); +.filled.first { + --fdsc-tag-border: var(--fds-semantic-surface-first-dark); + --fdsc-tag-background: var(--fds-semantic-surface-first-dark); --fdsc-tag-text: var(--fds-semantic-text-neutral-on_inverted); } -.filled.secondary { - --fdsc-tag-border: var(--fds-semantic-surface-secondary-dark); - --fdsc-tag-background: var(--fds-semantic-surface-secondary-dark); +.filled.second { + --fdsc-tag-border: var(--fds-semantic-surface-second-dark); + --fdsc-tag-background: var(--fds-semantic-surface-second-dark); --fdsc-tag-text: var(--fds-semantic-text-neutral-on_inverted); } -.filled.tertiary { - --fdsc-tag-border: var(--fds-semantic-surface-tertiary-dark); - --fdsc-tag-background: var(--fds-semantic-surface-tertiary-dark); +.filled.third { + --fdsc-tag-border: var(--fds-semantic-surface-third-dark); + --fdsc-tag-background: var(--fds-semantic-surface-third-dark); --fdsc-tag-text: var(--fds-semantic-text-neutral-on_inverted); } diff --git a/packages/react/src/components/Tag/Tag.stories.tsx b/packages/react/src/components/Tag/Tag.stories.tsx index 45b509019d..ceefc449de 100644 --- a/packages/react/src/components/Tag/Tag.stories.tsx +++ b/packages/react/src/components/Tag/Tag.stories.tsx @@ -69,9 +69,9 @@ const colors: TagProps['color'][] = [ 'warning', 'danger', 'info', - 'primary', - 'secondary', - 'tertiary', + 'first', + 'second', + 'third', ]; export const Colors: StoryFn = ({ ...rest }): JSX.Element => { diff --git a/packages/react/src/components/Tag/Tag.test.tsx b/packages/react/src/components/Tag/Tag.test.tsx index 1006a90ce8..202c0d1002 100644 --- a/packages/react/src/components/Tag/Tag.test.tsx +++ b/packages/react/src/components/Tag/Tag.test.tsx @@ -37,9 +37,9 @@ describe('Tag', () => { expect(screen.getByText('Beta')).toHaveClass('outlined'); }); - test('should render color primary', (): void => { - render(Beta); - expect(screen.getByText('Beta')).toHaveClass('primary'); + test('should render color first', (): void => { + render(Beta); + expect(screen.getByText('Beta')).toHaveClass('first'); }); test('should have custom className', () => { diff --git a/packages/react/src/components/Tag/Tag.tsx b/packages/react/src/components/Tag/Tag.tsx index 28aef87160..c9ece3ac01 100644 --- a/packages/react/src/components/Tag/Tag.tsx +++ b/packages/react/src/components/Tag/Tag.tsx @@ -7,7 +7,7 @@ import { Paragraph } from '../Typography'; import classes from './Tag.module.css'; -type BrandColor = 'primary' | 'secondary' | 'tertiary'; +type BrandColor = 'first' | 'second' | 'third'; type VariantColor = 'neutral' | 'success' | 'warning' | 'danger' | 'info'; type Size = Exclude; diff --git a/packages/react/src/components/TextArea/TextArea.mdx b/packages/react/src/components/TextArea/TextArea.mdx deleted file mode 100644 index fcc0c2247f..0000000000 --- a/packages/react/src/components/TextArea/TextArea.mdx +++ /dev/null @@ -1,73 +0,0 @@ -import { Meta, Canvas, Story, Primary, Controls } from '@storybook/blocks'; -import { TextArea } from './'; -import { Information, TokensTable } from '../../../../../docs-components'; -import { ArgsTable } from '@storybook/blocks'; -import * as TextAreaStories from './TextArea.stories'; - - - -# TextArea - - - -`TextArea` brukes til å ta imot lengre tekster, gjerne over flere linjer. - -## Bruk - -```tsx -import { TextArea } from '@digdir/design-system-react'; - -