Compare commits

...
Author SHA1 Message Date
github-actions[bot] 909e431714 Lerna versionbump [ci skip]
- @navikt/ds-css@0.5.2
 - @navikt/ds-react@0.5.2
2021-06-02 11:49:55 +00:00
KenandAndreas Nordahl c57ebc6d31 Vnext: Lenkepanel -> LinkPanel (#1107)
Co-authored-by: Andreas Nordahl <andnorda@gmail.com>
2021-06-02 13:35:30 +02:00
Ken 59d3b86d25 Update CHANGELOG.md 2021-06-02 12:32:00 +02:00
github-actions[bot] 3795a1e8fa Lerna versionbump [ci skip]
- @navikt/ds-css@0.5.1
 - @navikt/ds-react@0.5.1
 - @navikt/ds-tokens@0.3.1
2021-06-02 09:19:08 +00:00
KenandAndreas Nordahl c526873cd3 Vnext: Nytt Typo-oppsett(#1079)
Co-authored-by: Andreas Nordahl <andnorda@gmail.com>
2021-06-02 11:04:12 +02:00
github-actions[bot] 8ee6ce93e4 Lerna versionbump [ci skip]
- @navikt/ds-css@0.4.2
 - @navikt/ds-react@0.4.3
2021-05-28 11:23:29 +00:00
KenandAndreas Nordahl a086727d19 Vnext: paneler komponent (#1108)
* laget panel komponent

* default panel border to false

Co-authored-by: Andreas Nordahl <andnorda@gmail.com>
2021-05-28 13:08:14 +02:00
Ken 2e9099c1a9 Update Panel.overview.mdx 2021-05-26 13:27:17 +02:00
github-actions[bot] 7d4e866a7c Lerna versionbump [ci skip]
- @navikt/ds-icons@0.3.2
 - @navikt/ds-react@0.4.2
2021-05-25 19:01:21 +00:00
Ken b01c67f2a6 Oppdatert ikoner (#1105) 2021-05-25 20:47:29 +02:00
Ken a583f69c83 Oppdatert changelog for April + Mai 2021-05-25 10:45:14 +02:00
github-actions[bot] d2675e0767 Lerna versionbump [ci skip]
- nav-frontend-hjelpetekst@3.0.2
 - nav-frontend-popover@2.0.2
2021-05-21 09:40:52 +00:00
Ken 1464aca19e popover-position updates nå onMount (#1104) 2021-05-21 11:27:08 +02:00
Ken 39fdcadabe Oppdatert lenker til Figma på design.nav.no (#1103) 2021-05-21 09:28:01 +02:00
github-actions[bot] efc45667b0 Lerna versionbump [ci skip]
- @navikt/ds-css@0.4.1
 - @navikt/ds-react@0.4.1
 - @navikt/ds-tokens@0.2.1
 - nav-frontend-alertstriper-style@3.0.1
 - nav-frontend-alertstriper@4.0.1
 - nav-frontend-chevron@1.0.30
 - nav-frontend-core@6.0.1
 - nav-frontend-ekspanderbartpanel-style@2.0.1
 - nav-frontend-ekspanderbartpanel@4.0.1
 - nav-frontend-etiketter-style@2.0.1
 - nav-frontend-etiketter@3.0.1
 - nav-frontend-grid@2.0.1
 - nav-frontend-hjelpetekst-style@3.0.1
 - nav-frontend-hjelpetekst@3.0.1
 - nav-frontend-ikoner-assets@3.0.1
 - nav-frontend-ikonknapper@2.0.1
 - nav-frontend-knapper-style@2.0.1
 - nav-frontend-knapper@3.0.1
 - nav-frontend-lenkepanel-style@2.0.1
 - nav-frontend-lenkepanel@2.0.1
 - nav-frontend-lenker-style@2.0.1
 - nav-frontend-lenker@2.0.1
 - nav-frontend-lesmerpanel-style@2.0.1
 - nav-frontend-lesmerpanel@2.0.1
 - nav-frontend-lukknapp-style@2.0.1
 - nav-frontend-lukknapp@2.0.1
 - nav-frontend-modal-style@2.0.1
 - nav-frontend-modal@2.0.1
 - nav-frontend-paneler-style@2.0.1
 - nav-frontend-paneler@3.0.1
 - nav-frontend-popover-style@2.0.1
 - nav-frontend-popover@2.0.1
 - nav-frontend-skjema-style@3.0.1
 - nav-frontend-skjema@4.0.1
 - nav-frontend-snakkeboble-style@2.0.1
 - nav-frontend-snakkeboble@3.0.1
 - nav-frontend-spinner@3.0.1
 - nav-frontend-stegindikator-style@2.0.1
 - nav-frontend-stegindikator@2.0.1
 - nav-frontend-tabell-style@2.0.1
 - nav-frontend-tabs-style@2.0.1
 - nav-frontend-tabs@2.0.1
 - nav-frontend-tekstomrade@3.0.1
 - nav-frontend-toggle-style@2.0.1
 - nav-frontend-toggle@2.0.1
 - nav-frontend-typografi-style@2.0.1
 - nav-frontend-typografi@4.0.1
 - nav-frontend-veileder-style@3.0.1
 - nav-frontend-veileder@3.0.1
 - nav-frontend-veilederpanel-style@2.0.1
 - nav-frontend-veilederpanel@2.0.1
2021-05-20 08:10:18 +00:00
KenandAndreas Nordahl c04db248fb Oppdatert fargepalett for nav-frontend-core + ds-tokens (#1092)
Co-authored-by: Ken <26967723+KenAJoh@users.noreply.github.com>
Co-authored-by: Andreas Nordahl <andnorda@gmail.com>
2021-05-20 09:55:47 +02:00
github-actions[bot] c4f279accd Lerna versionbump [ci skip]
- @navikt/ds-css@0.3.4
 - @navikt/ds-tokens@0.1.5
 - nav-frontend-alertstriper@3.1.2
 - nav-frontend-chevron@1.0.29
 - nav-frontend-ekspanderbartpanel@3.1.4
 - nav-frontend-etiketter@2.1.3
 - nav-frontend-grid@1.1.2
 - nav-frontend-hjelpetekst@2.1.4
 - nav-frontend-ikonknapper@1.1.4
 - nav-frontend-js-utils@1.0.19
 - nav-frontend-knapper@2.1.4
 - nav-frontend-lenkepanel@1.1.2
 - nav-frontend-lenker@1.1.2
 - nav-frontend-lesmerpanel@1.1.3
 - nav-frontend-lukknapp@1.2.2
 - nav-frontend-modal@1.2.2
 - nav-frontend-paneler@2.1.2
 - nav-frontend-popover@1.1.4
 - nav-frontend-skjema@3.2.6
 - nav-frontend-snakkeboble@2.1.2
 - nav-frontend-spinner@2.0.17
 - nav-frontend-stegindikator@1.1.3
 - nav-frontend-tabs@1.1.3
 - nav-frontend-tekstomrade@2.1.3
 - nav-frontend-toggle@1.1.4
 - nav-frontend-typografi@3.1.2
 - nav-frontend-veileder-style@2.1.2
 - nav-frontend-veileder@2.1.4
 - nav-frontend-veilederpanel@1.1.4
2021-05-19 13:10:13 +00:00
Ken b7b567a040 Prop for hvit bakgrunn på veileder sin snakkeboble (#1099) 2021-05-19 14:53:43 +02:00
Ken cd80c11deb Fikset problem med build (#1100)
* fikset problem med build

* fikset eventhrottle error for chromatic
2021-05-19 14:53:19 +02:00
Ken 9169c87c62 Oppdatert bakgrunnsfarger tag for å synce med etikett og figma (#1097) 2021-05-18 12:25:35 +02:00
github-actions[bot] f735ae608b Lerna versionbump [ci skip]
- nav-frontend-skjema@3.2.5
2021-05-18 09:16:53 +00:00
Ida 22e1f0bf98 Update textarea-controlled.tsx (#1098) 2021-05-18 10:19:03 +02:00
github-actions[bot] ed87b47750 Lerna versionbump [ci skip]
- @navikt/ds-css@0.3.3
 - @navikt/ds-tokens@0.1.4
 - nav-frontend-etiketter-style@1.1.2
 - nav-frontend-etiketter@2.1.2
 - nav-frontend-skjema-style@2.2.3
 - nav-frontend-skjema@3.2.4
2021-05-18 07:58:06 +00:00
Andreas Nordahl 983c2c1def Bakgrunnsfarger på etiketter stemmer nå overens med Figma (#1094) 2021-05-18 09:19:39 +02:00
Andreas Nordahl 436c1d559c always underline bekreftCheckboksPanel label on hover (#1095) 2021-05-18 09:19:14 +02:00
Andreas Nordahl be2905ba02 cjs tokens (#1096) 2021-05-14 16:11:10 +02:00
185 changed files with 3322 additions and 2755 deletions

No files matched your search

+1 -1
View File
@@ -16,7 +16,7 @@ module.exports = (baseConfig) => {
}
);
baseConfig.config.resolve.alias = {
...baseConfig.config.resolve?.alias,
...baseConfig.config.resolve.alias,
"./normalize.css": path.resolve(
__dirname,
"../node_modules/normalize.css/normalize.css"
-6
View File
@@ -51,12 +51,6 @@
align-items: center;
}
.navds-accordion__button .navds-accordion__heading {
font-size: var(--navds-font-size-large);
font-weight: var(--navds-font-weight-bold);
line-height: var(--navds-font-line-height-large);
}
.navds-accordion__button:hover .navds-accordion__heading {
text-decoration: underline;
color: var(--navds-color-text-link);
-2
View File
@@ -8,8 +8,6 @@
grid-auto-flow: column;
column-gap: 0.75rem;
justify-content: start;
font-size: var(--navds-font-size-small);
line-height: var(--navds-font-line-height-small);
}
.navds-alert--small {
-3
View File
@@ -3,12 +3,9 @@
cursor: pointer;
background-color: var(--navds-color-background);
color: var(--navds-color-action-default);
font: inherit;
margin: 0;
text-align: center;
text-decoration: none;
font-size: var(--navds-font-size-small);
line-height: var(--navds-font-line-height-small);
border-color: var(--navds-color-action-default);
border-radius: 2px;
border-style: solid;
+6 -3
View File
@@ -1,4 +1,8 @@
@import "baseline/baseline.css";
@import "typography.css";
@import "grid.css";
@import "layouts.css";
@import "accordion.css";
@import "accordion-anchor-menu.css";
@import "accordion-menu.css";
@@ -6,11 +10,10 @@
@import "button.css";
@import "content-container.css";
@import "copy-to-clipboard.css";
@import "grid.css";
@import "internal-header.css";
@import "layouts.css";
@import "link.css";
@import "modal.css";
@import "popover.css";
@import "tag.css";
@import "typography.css";
@import "panel.css";
@import "link-panel.css";
+1 -13
View File
@@ -29,9 +29,6 @@
text-decoration: none;
margin: 0;
color: var(--navds-color-text-inverse);
font-size: var(--navds-font-size-medium);
font-weight: var(--navds-font-weight-bold);
line-height: var(--navds-font-line-height-medium);
}
.navds-header__title > span > a {
@@ -58,15 +55,6 @@
align-items: center;
}
.navds-header__name {
.navds-header__name.navds-body-short {
margin-right: 1rem;
font-size: var(--navds-font-size-small);
font-weight: var(--navds-font-weight-bold);
line-height: var(--navds-font-line-height-small);
}
.navds-header__ident {
font-size: var(--navds-font-size-xs);
font-weight: var(--navds-font-weight-bold);
line-height: var(--navds-font-line-height-xs);
}
+32
View File
@@ -0,0 +1,32 @@
.navds-link-panel {
display: flex;
justify-content: space-between;
align-items: center;
text-decoration: none;
color: var(--navds-color-gray-90);
}
.navds-link-panel:hover .navds-link-panel-title {
text-decoration: underline;
color: var(--navds-color-text-link);
}
.navds-link-panel:hover {
box-shadow: var(--navds-shadow-hover);
border-color: var(--navds-color-blue-50);
}
.navds-link-panel:focus {
box-shadow: var(--navds-shadow-focus);
outline: none;
}
.navds-link-panel__chevron {
font-size: 1.5rem;
transition: transform 200ms;
}
.navds-link-panel:hover > .navds-link-panel__chevron,
.navds-link-panel:focus-within > .navds-link-panel__chevron {
transform: translateX(4px);
}
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@navikt/ds-css",
"version": "0.3.2",
"version": "0.5.2",
"private": false,
"description": "Css for NAV Designsystem components",
"author": "NAV Designsystem team",
@@ -21,7 +21,7 @@
"watch-css": "postcss -w --use postcss-import -o dist/index.css index.css"
},
"devDependencies": {
"@navikt/ds-tokens": "^0.1.3",
"@navikt/ds-tokens": "^0.3.1",
"normalize.css": "^8.0.1",
"postcss": "^8.2.7",
"postcss-cli": "^8.3.1",
+11
View File
@@ -0,0 +1,11 @@
.navds-panel {
background-color: var(--navds-color-white);
display: block;
padding: 1rem;
border-radius: var(--navds-border-radius);
border: 1px solid transparent;
}
.navds-panel--border {
border-color: var(--navds-color-border);
}
-2
View File
@@ -3,8 +3,6 @@
border: var(--navds-border-default);
background-color: var(--navds-color-tag-info-background);
border-color: var(--navds-color-tag-info-border);
font-size: var(--navds-font-size-xs);
line-height: var(--navds-font-line-height-xs);
display: inline-block;
/* Padding calculated based on 16px font for 24px tall tag */
+123 -38
View File
@@ -1,63 +1,148 @@
/*
* Heading
*/
.navds-heading {
/* Title */
.navds-title {
font-weight: var(--navds-font-weight-bold);
line-height: calc(1em + 0.25rem);
margin: 0;
}
.navds-heading--xxl {
font-size: var(--navds-font-size-heading-xxl);
.navds-title--2xl {
font-size: var(--navds-font-size-title-2xl);
letter-spacing: -0.01em;
line-height: var(--navds-font-line-height-2xl);
}
.navds-heading--xl {
font-size: var(--navds-font-size-heading-xl);
.navds-title--2xl.navds-typo--spacing {
margin-bottom: var(--navds-font-spacing-s);
}
.navds-heading--large {
font-size: var(--navds-font-size-heading-large);
.navds-title--xl {
font-size: var(--navds-font-size-title-xl);
letter-spacing: -0.008em;
line-height: var(--navds-font-line-height-xl);
}
.navds-heading--medium {
font-size: var(--navds-font-size-heading-medium);
.navds-title--xl.navds-typo--spacing {
margin-bottom: var(--navds-font-spacing-xs);
}
.navds-heading--small {
font-size: var(--navds-font-size-heading-small);
.navds-title--l {
font-size: var(--navds-font-size-title-l);
letter-spacing: -0.004em;
line-height: var(--navds-font-line-height-l);
}
/*
* Text
*/
.navds-text--large {
font-size: var(--navds-font-size-large);
line-height: var(--navds-font-line-height-large);
.navds-title--l.navds-typo--spacing {
margin-bottom: var(--navds-font-spacing-2xs);
}
.navds-text--medium {
font-size: var(--navds-font-size-medium);
line-height: var(--navds-font-line-height-medium);
.navds-title--m {
font-size: var(--navds-font-size-title-m);
letter-spacing: -0.002em;
line-height: var(--navds-font-line-height-m);
}
.navds-text--small {
font-size: var(--navds-font-size-small);
line-height: var(--navds-font-line-height-small);
.navds-title--m.navds-typo--spacing {
margin-bottom: var(--navds-font-spacing-2xs);
}
.navds-text--xs {
font-size: var(--navds-font-size-xs);
.navds-title--s {
font-size: var(--navds-font-size-title-s);
letter-spacing: -0.001em;
line-height: var(--navds-font-line-height-s);
}
.navds-title--s.navds-typo--spacing {
margin-bottom: var(--navds-font-spacing-2xs);
}
/* Ingress */
.navds-ingress {
font-size: var(--navds-font-size-xl);
letter-spacing: -0.001em;
line-height: var(--navds-font-line-height-s);
margin: 0;
}
.navds-ingress.navds-typo--spacing {
margin-bottom: var(--navds-font-spacing-3xl);
}
/* Body */
.navds-body-long {
font-size: var(--navds-font-size-l);
letter-spacing: 0;
line-height: var(--navds-font-line-height-s);
margin: 0;
}
.navds-body-short {
font-size: var(--navds-font-size-l);
letter-spacing: 0;
line-height: var(--navds-font-line-height-xs);
margin: 0;
}
.navds-body-long.navds-typo--spacing {
margin-bottom: var(--navds-font-spacing-l);
}
.navds-body-short.navds-typo--spacing {
margin-bottom: var(--navds-font-spacing-2xs);
}
.navds-body--s {
font-size: var(--navds-font-size-m);
letter-spacing: 0.002em;
line-height: var(--navds-font-line-height-xs);
}
/*
* Article typography
*/
.navds-article__lead {
font-size: var(--navds-font-size-article-lead);
line-height: var(--navds-font-line-height-large);
.navds-body-long.navds-body--s.navds-typo--spacing {
margin-bottom: var(--navds-font-spacing-m);
}
.navds-article__paragraph {
font-size: var(--navds-font-size-article-paragraph);
line-height: var(--navds-font-line-height-medium);
.navds-body-short.navds-body--s.navds-typo--spacing {
margin-bottom: var(--navds-font-spacing-3xs);
}
/* Label */
.navds-label {
font-size: var(--navds-font-size-l);
letter-spacing: 0;
line-height: var(--navds-font-line-height-xs);
font-weight: var(--navds-font-weight-bold);
margin: 0;
}
.navds-label.navds-typo--spacing {
margin-bottom: var(--navds-font-spacing-2xs);
}
.navds-label--s {
font-size: var(--navds-font-size-m);
letter-spacing: 0.002em;
line-height: var(--navds-font-line-height-2xs);
}
.navds-label--s.navds-typo--spacing {
margin-bottom: var(--navds-font-spacing-3xs);
}
/* Small text */
.navds-detail {
font-size: var(--navds-font-size-s);
letter-spacing: 0.004em;
line-height: var(--navds-font-line-height-2xs);
font-weight: var(--navds-font-weight-bold);
margin: 0;
}
.navds-detail.navds-typo--spacing {
margin-bottom: var(--navds-font-spacing-3xs);
}
.navds-detail--s {
font-weight: var(--navds-font-weight-regular);
}
.navds-detail--s.navds-typo--spacing {
margin-bottom: var(--navds-font-spacing-3xs);
}
+16
View File
@@ -2495,6 +2495,22 @@
"pageName": "Handicap",
"visible": true
},
{
"name": "SignLanguageTwoHands",
"description": "",
"created_at": "2021-05-20T14:35:02.839Z",
"updated_at": "2021-05-20T14:35:02.839Z",
"pageName": "Handicap",
"visible": true
},
{
"name": "SignLanguageTwoHandsFilled",
"description": "",
"created_at": "2021-05-20T14:35:02.835Z",
"updated_at": "2021-05-21T11:39:15.041Z",
"pageName": "Handicap",
"visible": true
},
{
"name": "SingleParent",
"description": "",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@navikt/ds-icons",
"version": "0.3.1",
"version": "0.3.2",
"private": false,
"description": "NAVs egne ikoner i SVG og React format",
"repository": {
+1 -1
View File
@@ -1,3 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M10 2H14V3H13H11H10V2ZM8 3.58152V2C8 0.89543 8.89543 0 10 0H14C15.1046 0 16 0.895431 16 2V3.58152C18.9318 4.76829 21 7.64262 21 11V13H22C23.1046 13 24 13.8954 24 15V20C24 21.1046 23.1046 22 22 22H20.4649C19.7733 23.1956 18.4806 24 17 24H7C5.51944 24 4.22675 23.1956 3.53513 22H2C0.89543 22 0 21.1046 0 20V15C0 13.8954 0.895431 13 2 13H3V11C3 7.64262 5.06817 4.76829 8 3.58152ZM19 20V13V11C19 7.68629 16.3137 5 13 5H11C7.68629 5 5 7.68629 5 11V13V20C5 21.1046 5.89543 22 7 22H17C18.1046 22 19 21.1046 19 20ZM21 15V20H22V15H21ZM2 15H3V20H2L2 15ZM15 15H9V18H15V15ZM9 13C7.89543 13 7 13.8954 7 15V18C7 19.1046 7.89543 20 9 20H15C16.1046 20 17 19.1046 17 18V15C17 13.8954 16.1046 13 15 13H9ZM9 8C8.44772 8 8 8.44772 8 9C8 9.55228 8.44772 10 9 10H15C15.5523 10 16 9.55228 16 9C16 8.44772 15.5523 8 15 8H9Z" fill="#262626"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M10 2H14V3H13H11H10V2ZM8 3.58152V2C8 0.89543 8.89543 0 10 0H14C15.1046 0 16 0.895431 16 2V3.58152C18.9318 4.76829 21 7.64262 21 11V20C21 22.2091 19.2091 24 17 24H7C4.79086 24 3 22.2091 3 20V11C3 7.64262 5.06817 4.76829 8 3.58152ZM2 22V20V15V13C0.895431 13 0 13.8954 0 15V20C0 21.1046 0.895431 22 2 22ZM22 20V22C23.1046 22 24 21.1046 24 20V15C24 13.8954 23.1046 13 22 13V15V20ZM9 8C8.44772 8 8 8.44772 8 9C8 9.55228 8.44772 10 9 10H15C15.5523 10 16 9.55228 16 9C16 8.44772 15.5523 8 15 8H9ZM9 15H15V18H9V15ZM7 15C7 13.8954 7.89543 13 9 13H15C16.1046 13 17 13.8954 17 15V18C17 19.1046 16.1046 20 15 20H9C7.89543 20 7 19.1046 7 18V15Z" fill="#262626"/>
</svg>

Before

Width:  |  Height:  |  Size: 970 B

After

Width:  |  Height:  |  Size: 802 B

@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M17.2759 0.794191C16.307 -0.244097 14.667 -0.26221 13.6754 0.754417L9.74143 4.78747C9.649 3.25296 8.37333 2 6.77509 2C5.8588 2 5.06149 2.62698 4.84543 3.51743L4.0564 6.76929C4.01893 6.9237 4 7.08201 4 7.24089V12H6V7.24089L6.78636 4.00006C7.36372 4.00658 7.80905 4.51343 7.73931 5.08828L7.50726 7.00087C7.46893 7.31686 7.58332 7.63224 7.81533 7.85018L7.85281 7.88538C8.73673 8.71568 9.02192 10.0026 8.57152 11.1286L10.4285 11.8714C11.0294 10.3691 10.8502 8.69616 10.0063 7.37311C10.0317 7.35181 10.0562 7.32906 10.0798 7.30485L15.1071 2.15093C15.3017 1.9514 15.6236 1.95495 15.8137 2.15873C15.9899 2.34745 15.9887 2.64064 15.8111 2.82797L12.8809 5.91858C12.5009 6.31936 12.5178 6.9523 12.9186 7.33229C13.3194 7.71227 13.9523 7.69541 14.3323 7.29462L14.9911 6.59976L15.009 6.61825L19.1448 2.6177C19.352 2.41722 19.6799 2.41381 19.8912 2.60994C20.1205 2.82265 20.123 3.18461 19.8967 3.40048L15.3097 7.77646C14.9226 8.14579 14.8947 8.75443 15.2465 9.15755L16.3105 10.3767C17.0272 11.1979 16.9544 12.4418 16.1467 13.1737L15.3284 13.9153L16.6715 15.3973L17.4897 14.6557C19.1051 13.1918 19.2508 10.7041 17.8174 9.06162L17.3824 8.56324L21.2773 4.84759C22.3374 3.83619 22.3257 2.1404 21.2516 1.14381C20.2612 0.224952 18.7253 0.24092 17.7543 1.18017L17.6377 1.29292C17.5403 1.11595 17.4197 0.948242 17.2759 0.794191ZM2 17.6C2 16.195 3.18687 15 4.72128 15C5.75299 15 6.65937 15.5443 7.11914 16.3132L7.41022 16.8H12.1638C12.6707 16.8 13.0245 17.1891 13.0245 17.6C13.0245 18.0109 12.6707 18.4 12.1638 18.4H8.44257V20.4H12.1638C13.254 20.4 14.2271 19.794 14.7076 18.8848L21.2144 17.6647C21.4524 17.6201 21.6958 17.7091 21.8489 17.8968C22.1318 18.2435 21.996 18.7652 21.58 18.93L13.9948 21.9361C13.8883 21.9783 13.7747 22 13.6601 22H2V17.6ZM20.8458 15.699L14.9105 16.8119C14.5597 15.6334 13.4423 14.8 12.1638 14.8H8.49893C7.62226 13.6954 6.23291 13 4.72128 13C2.14528 13 0 15.0285 0 17.6V24H13.6601C14.027 24 14.3906 23.9306 14.7317 23.7954L22.3169 20.7893C23.9904 20.1261 24.5366 18.0274 23.3987 16.6325C22.7827 15.8775 21.8035 15.5194 20.8458 15.699Z" fill="#262626"/>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

@@ -0,0 +1,4 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.6641 5.80415L17.8422 2.51184C18.3901 1.94435 18.3975 1.04755 17.8592 0.47103C17.2817 -0.147543 16.3041 -0.158336 15.713 0.447334L10.6778 5.60681L10.6838 5.61275L10.5592 5.73844L10.3805 7.06235C11.7946 8.32246 12.5209 10.1515 12.3976 11.9956H11.3944C11.4081 11.8237 11.4131 11.6519 11.4093 11.4808C11.3789 10.0731 10.7615 8.71373 9.66169 7.76072C9.47276 7.597 9.36744 7.35937 9.3703 7.11283C9.37077 7.07911 9.37325 7.04523 9.37782 7.01135L9.70581 4.58006C9.86396 3.40852 8.95297 2.36629 7.7708 2.36629C7.3203 2.36629 6.9283 2.67454 6.82205 3.11233L6.03079 6.37284C6.01205 6.45005 6.00258 6.52922 6.00258 6.60867V14.166C7.00096 14.4358 7.88069 15.0135 8.50257 15.7969H10.38L10.3809 15.7938H11.4246L11.4237 15.7969H12.1694C13.3803 15.7969 14.4469 16.5442 14.8549 17.6241L14.9727 17.6054L18.0422 14.6519C19.7068 13.0502 19.6718 10.376 17.9657 8.81844L17.2628 8.17671L22.3435 2.88855C22.8886 2.32118 22.895 1.42691 22.3581 0.851822C21.7795 0.23219 20.7997 0.223126 20.2098 0.831949L15.0503 6.15674L14.6641 5.80415Z" fill="#262626"/>
<path d="M12.1696 16.7973H7.98101C7.33725 15.7209 6.10132 14.9967 4.72321 14.9967C2.66694 14.9967 1 16.609 1 18.5979V23.9999H13.6667C13.9076 23.9999 14.1462 23.9543 14.3701 23.8656L21.9393 20.8664C22.9944 20.4483 23.3388 19.1251 22.6213 18.2457C22.2434 17.7825 21.6476 17.5554 21.0573 17.6494L15.101 18.5979C15.101 20.1656 13.8302 21.4365 12.2625 21.4365H8.44641V20.3986H12.1696C13.1978 20.3986 14.0312 19.5924 14.0312 18.5979C14.0312 17.6035 13.1978 16.7973 12.1696 16.7973Z" fill="#262626"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@navikt/ds-react",
"version": "0.3.5",
"version": "0.5.2",
"private": false,
"description": "NAV designsystem react components",
"author": "NAV Designsystem team",
@@ -34,7 +34,7 @@
"watch": "tsc --watch -p tsconfig-esm.json"
},
"dependencies": {
"@navikt/ds-icons": "^0.3.1",
"@navikt/ds-icons": "^0.3.2",
"@popperjs/core": "^2.5.4",
"classnames": "^2.2.6",
"copy-to-clipboard": "^3.3.1",
@@ -1,6 +1,6 @@
import React, { forwardRef, HTMLAttributes } from "react";
import { AccordionMenu as BaseAccordionMenu } from "../accordion-menu";
import { Heading } from "../index";
import { Title } from "../index";
import { ActiveAnchorProvider } from "./ActiveAnchorStore";
import cl from "classnames";
@@ -21,13 +21,9 @@ const AccordionAnchorMenu = forwardRef<
{...rest}
>
{title && (
<Heading
level={2}
size="medium"
className="navds-accordion-anchor-menu__title"
>
<Title level={2} size="m" className="navds-accordion-anchor-menu__title">
{title}
</Heading>
</Title>
)}
<ActiveAnchorProvider>
<BaseAccordionMenu aria-label={title || "Meny"}>
+3 -1
View File
@@ -78,7 +78,9 @@ const Accordion = forwardRef<HTMLDivElement, AccordionProps>(
onClick={onClick ? onClick : () => setInternalOpen((open) => !open)}
{...rest}
>
<span className="navds-accordion__heading">{heading}</span>
<span className="navds-accordion__heading navds-title navds-title--s">
{heading}
</span>
<Expand
className={cl(
"navds-accordion__chevron",
+3 -1
View File
@@ -50,7 +50,9 @@ const Alert = forwardRef<HTMLDivElement, AlertProps>(
className,
"navds-alert",
`navds-alert--${variant}`,
`navds-alert--${size}`
`navds-alert--${size}`,
"navds-body-long",
"navds-body--s"
)}
{...rest}
>
+2 -1
View File
@@ -35,7 +35,8 @@ const Button = forwardRef<HTMLButtonElement, ButtonProps>(
className,
"navds-button",
`navds-button--${variant}`,
`navds-button--${size}`
`navds-button--${size}`,
"navds-body-short"
)}
{...rest}
/>
@@ -1,6 +1,6 @@
import * as React from "react";
import { ContentContainer } from "../index";
import { Text } from "../../index";
import { BodyLong } from "../../index";
import "./style.css";
import { useEffect } from "react";
@@ -41,7 +41,7 @@ export default {
export const All = () => {
return (
<ContentContainer className={"navds-story-content-container"}>
<Text size="medium">-- Innhold --</Text>
<BodyLong size="m">-- Innhold --</BodyLong>
</ContentContainer>
);
};
+8 -6
View File
@@ -34,12 +34,14 @@ export { Link, LinkProps } from "./link/index";
export { Modal, ModalProps } from "./modal/index";
export { Popover, PopoverProps } from "./popover/index";
export { Tag, TagProps } from "./tag/index";
export { LinkPanel, LinkPanelProps } from "./link-panel/index";
export { Panel, PanelProps } from "./panel/index";
export {
Heading,
HeadingProps,
Lead,
Paragraph,
Text,
TextProps,
Title,
Ingress,
BodyLong,
BodyShort,
Label,
Detail,
} from "./typography/index";
export { OverridableComponent } from "./util/index";
@@ -22,7 +22,7 @@ const InternalHeaderTitle = forwardRef<HTMLElement, InternalHeaderTitleProps>(
createElement(element, {
...rest,
ref,
className: cl("navds-header__title", className),
className: cl("navds-header__title", "navds-label", className),
children: <span>{children}</span>,
})
);
@@ -20,8 +20,10 @@ export interface InternalHeaderUserProps
const InternalHeaderUser = forwardRef<HTMLDivElement, InternalHeaderUserProps>(
({ className, name, ident, ...rest }, ref) => (
<div ref={ref} className={cl("navds-header__user", className)} {...rest}>
<span className="navds-header__name">{name}</span>
<span className="navds-header__ident">{ident}</span>
<span className="navds-header__name navds-body-short navds-body--s">
{name}
</span>
<span className="navds-detail navds-detail--s">{ident}</span>
</div>
)
);
@@ -1,6 +1,6 @@
import cl from "classnames";
import React, { Children, forwardRef, HTMLAttributes, useEffect } from "react";
import { ContentContainer, Heading } from "../../index";
import { ContentContainer, Title } from "../../index";
const cls = (className, columns) =>
cl(
@@ -35,13 +35,13 @@ const ProductPageLayout = forwardRef<HTMLDivElement, ProductPageLayoutProps>(
<ContentContainer>
<div className={cls(className, columns)} {...rest}>
<div className={cl("navds-layout__header-content")}>
<Heading
size={"xxl"}
<Title
size="2xl"
className={cl("navds-layout__header-title")}
level={1}
>
{title}
</Heading>
</Title>
</div>
</div>
</ContentContainer>
@@ -1,7 +1,7 @@
import React, { useEffect, useRef } from "react";
import { forwardRef, ReactNode } from "react";
import cl from "classnames";
import { Heading, CopyToClipboard } from "../../";
import { Title, CopyToClipboard } from "../../";
import { Attachment } from "@navikt/ds-icons";
export interface ProductPagePanelProps
@@ -50,9 +50,9 @@ const ProductPagePanel = forwardRef<HTMLDivElement, ProductPagePanelProps>(
/>
</div>
{icon && <div className={"navds-layout__panel-icon"}>{icon}</div>}
<Heading size={"xl"} className={"navds-layout__panel-title"} level={2}>
<Title size={"xl"} className={"navds-layout__panel-title"} level={2}>
{title}
</Heading>
</Title>
<CopyToClipboard
className="navds-layout__panel-copy"
@@ -1,12 +1,5 @@
import * as React from "react";
import {
Button,
Cell,
Grid,
Heading,
Link,
Paragraph,
} from "../../../../index";
import { Button, Cell, Grid, Title, Link, BodyLong } from "../../../../index";
export const Main = ({ title = true }) => (
<>
@@ -19,30 +12,30 @@ export const Main = ({ title = true }) => (
export const MainOne = ({ title = true }) => (
<div>
{title && (
<Heading level={1} size={"xl"} id={"leo-quis"}>
<Title level={1} size={"xl"} id={"leo-quis"}>
Leo quis
</Heading>
</Title>
)}
<Paragraph>
<BodyLong>
Sed ullamcorper quam eget lorem volutpat, quis cursus risus fermentum.
Quisque varius ornare nulla, ut condimentum sapien dapibus non. Nullam
eget interdum nibh
</Paragraph>
</BodyLong>
</div>
);
export const MainTwo = ({ title = true }) => (
<div>
{title && (
<Heading level={1} size={"xl"} id={"proin-accumsan"}>
<Title level={1} size={"xl"} id={"proin-accumsan"}>
Proin accumsan
</Heading>
</Title>
)}
<Paragraph className={"section"}>
<BodyLong className={"section"}>
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium
doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo
inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.
</Paragraph>
</BodyLong>
<Grid className={"section"}>
<Cell xs={6}>
<Link href={"#"}>Ea voluptate</Link>
@@ -51,17 +44,17 @@ export const MainTwo = ({ title = true }) => (
<Link href={"#"}>Quis autem</Link>
</Cell>
</Grid>
<Paragraph className={"section"}>
<BodyLong className={"section"}>
Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet,
consectetur, adipisci velit, sed quia non numquam eius modi tempora.
</Paragraph>
<Heading level={2} size={"large"} id={"nulla-pariatur"}>
</BodyLong>
<Title level={2} size={"l"} id={"nulla-pariatur"}>
Nulla pariatur?
</Heading>
<Paragraph className={"section"}>
</Title>
<BodyLong className={"section"}>
Etiam viverra neque sit amet libero dapibus tincidunt. Pellentesque quis
imperdiet erat. Morbi sodales bibendum volutpat.
</Paragraph>
</BodyLong>
<table className={"section tabell tabell--stripet"}>
<thead>
<tr>
@@ -92,18 +85,18 @@ export const MainTwo = ({ title = true }) => (
</tr>
</tbody>
</table>
<Paragraph className={"section"}>
<BodyLong className={"section"}>
Curabitur a purus pretium, condimentum magna ac, pellentesque diam. Nulla
facilisi. Nullam consequat, dui sed bibendum faucibus, metus mauris
commodo tortor.
</Paragraph>
<Heading level={2} size={"large"} id={"luctus-justo"}>
</BodyLong>
<Title level={2} size={"l"} id={"luctus-justo"}>
Luctus justo
</Heading>
<Paragraph className={"section"}>
</Title>
<BodyLong className={"section"}>
Nunc eget consectetur felis, id scelerisque sapien. Ut id feugiat nulla,
ut cursus sem. In viverra felis vitae aliquet finibus.
</Paragraph>
</BodyLong>
<Button>Søk ...</Button>
</div>
);
@@ -111,30 +104,30 @@ export const MainTwo = ({ title = true }) => (
export const MainThree = ({ title = true }) => (
<div>
{title && (
<Heading level={1} size={"xl"} id={"maecenas-in-pretium"}>
<Title level={1} size={"xl"} id={"maecenas-in-pretium"}>
Maecenas in pretium
</Heading>
</Title>
)}
<Paragraph>
<BodyLong>
Sed ullamcorper quam eget lorem volutpat, quis cursus risus fermentum.
Quisque varius ornare nulla, ut condimentum sapien dapibus non. Nullam
eget interdum nibh
</Paragraph>
<Paragraph>
</BodyLong>
<BodyLong>
Cras tempor eros sed dapibus egestas. Curabitur bibendum quam quis lectus
pretium lacinia. Nunc consequat ac augue quis laoreet. Donec porta, erat
vitae blandit egestas, arcu metus pharetra nulla, et laoreet risus purus
convallis turpis.
</Paragraph>
<Paragraph>
</BodyLong>
<BodyLong>
Suspendisse potenti. Praesent at elit interdum, porttitor sem eget,
blandit dolor. Nunc eget consectetur felis, id scelerisque sapien. Ut id
feugiat nulla, ut cursus sem. In viverra felis vitae aliquet finibus.
</Paragraph>
<Paragraph>
</BodyLong>
<BodyLong>
Vivamus id mi lectus. Duis ac augue magna. Aliquam ut euismod dui. Duis
consectetur, magna a malesuada tempus, elit urna fermentum arcu, at
porttitor magna sapien id enim.
</Paragraph>
</BodyLong>
</div>
);
@@ -0,0 +1,65 @@
import React, { forwardRef } from "react";
import { OverridableComponent } from "../util";
import { Panel } from "../index";
import { Next } from "@navikt/ds-icons";
import cl from "classnames";
export type LinkPanelType = OverridableComponent<LinkPanelProps>;
export interface LinkPanelProps {
props: {
children?: React.ReactNode;
className?: string;
noHeading?: boolean;
border?: boolean;
} & React.HTMLAttributes<HTMLAnchorElement>;
defaultComponent: "a";
}
const LinkPanel: LinkPanelType = forwardRef(
({ children, component = "a", border = true, className, ...rest }, ref) => {
return (
<Panel
component={component}
border={border}
ref={ref}
className={cl("navds-link-panel", className)}
{...rest}
>
{typeof children === "string" ? (
<LinkPanelTitle>{children}</LinkPanelTitle>
) : (
<span className="navds-link-panel__content">{children}</span>
)}
<Next
className="navds-link-panel__chevron"
aria-label="arrow-icon pointing right"
/>
</Panel>
);
}
);
interface LinkPanelTitleProps {
props: {
children: React.ReactNode;
} & React.HTMLAttributes<HTMLSpanElement>;
defaultComponent: "span";
}
export const LinkPanelTitle: OverridableComponent<LinkPanelTitleProps> = forwardRef(
({ className, component: Component = "span", ...rest }, ref) => (
<Component
ref={ref}
className={cl(
"navds-link-panel-title",
"navds-title",
"navds-title--m",
className
)}
{...rest}
/>
)
);
export default LinkPanel;
+2
View File
@@ -0,0 +1,2 @@
export { default as LinkPanel } from "./LinkPanel";
export * from "./LinkPanel";
@@ -0,0 +1,166 @@
import React from "react";
import { LinkPanel, LinkPanelTitle } from "../index";
export default {
title: "ds-react/linkPanel",
component: LinkPanel,
};
export const All = () => {
return (
<>
<h1>Link</h1>
<LinkPanel href="#">Dette er en tekstlenke</LinkPanel>
<h1>No border</h1>
<LinkPanel href="#" border={false}>
Dette er en tekstlenke
</LinkPanel>
<h1>Custom styling</h1>
<LinkPanel href="#" style={{ textDecoration: "none" }}>
<div
style={{
padding: "1rem",
display: "grid",
gridAutoFlow: "column",
gap: "2rem",
alignItems: "center",
}}
>
<Illustration />
<div>
<LinkPanelTitle>Dagpenger</LinkPanelTitle>
<p>
Du kan få dagpenger når du er arbeidsledig og har mistet inntekten
din.
</p>
</div>
</div>
</LinkPanel>
</>
);
};
const Illustration = () => (
<svg xmlns="http://www.w3.org/2000/svg" width="110" height="110">
<defs>
<path id="a" d="M.686.654h4.399v5.852H.686z"></path>
</defs>
<g fill="none" fillRule="evenodd">
<path fill="transparent" d="M-287-1518H993V543H-287z"></path>
<rect
width="796"
height="181"
fill="transparent"
rx="8"
transform="translate(-45 -36)"
></rect>
<circle cx="55" cy="55" r="55" fill="#CCDEE6"></circle>
<g fill="#D8D8D8">
<path
fill="#337C9B"
d="M32.034 5.834l-11.606 3.11-9.517 2.55-4.637 1.242 1.284 4.794 9.069 33.843 1.284 4.795 4.637-1.243 9.518-2.55 11.605-3.11c2.561-.686 4.063-3.389 3.353-6.037L37.956 9.385c-.71-2.648-3.361-4.238-5.922-3.551"
></path>
<path
fill="#38363A"
d="M38.322 51.833l1.77-.474-12.12-45.233-1.77.474z"
></path>
<path
fill="#CE2128"
d="M26.593 57.996l-1.179-.613-.713 1.12-.93-3.47 1.892-.507z"
></path>
</g>
<path
fill="#FFF"
d="M61.773 69.14l8.95 38.112a2.524 2.524 0 0 0 3.036 1.881l32.913-7.745a2.528 2.528 0 0 0 1.88-3.04L98.279 54.591a2.526 2.526 0 0 0-3.037-1.883L68.425 59.02l-6.652 10.12z"
></path>
<path
fill="#C0C0BE"
d="M68.425 59.02l1.326 5.645a2.527 2.527 0 0 1-1.88 3.038l-6.098 1.436 6.652-10.12z"
></path>
<path
stroke="#8E9294"
strokeLinecap="round"
strokeWidth="2.152"
d="M68.902 74.197l11.982-2.82m-10.721 8.19l24.874-5.853M71.424 84.937l24.873-5.853"
></path>
<path
stroke="#8E9294"
strokeLinecap="round"
strokeWidth="2.264"
d="M72.685 90.307l24.873-5.854M73.857 95.297l24.873-5.853M75.021 100.7l24.874-5.853"
></path>
<path
fill="#CCDEE6"
d="M21.698 86.68c-5.726-3.643-7.42-11.243-3.78-16.976 3.64-5.733 11.231-7.427 16.958-3.784 5.727 3.643 7.42 11.243 3.78 16.976-3.639 5.733-11.231 7.427-16.958 3.784z"
></path>
<path
fill="#C42B34"
d="M9.283 106.905a2.772 2.772 0 0 1-.851-3.823l8.759-13.798a2.765 2.765 0 0 1 3.817-.852 2.77 2.77 0 0 1 .851 3.822l-8.758 13.799a2.764 2.764 0 0 1-3.818.852"
></path>
<path
fill="#2E3137"
d="M19.032 90.912c-.86-.547-1.348-1.318-.801-2.179l1.826-2.877a1.841 1.841 0 0 1 2.546-.567 1.847 1.847 0 0 1 .566 2.547l-1.826 2.878c-.547.86-1.452.744-2.31.198"
></path>
<path
fill="#D84B55"
d="M16.41 91l-8.266 13.021a.925.925 0 0 0 .283 1.275.92.92 0 0 0 1.272-.284l7.912-12.463c-.713-.47-1.083-1.039-1.2-1.549"
></path>
<path
fill="#2E3137"
d="M27.811 87.523a11.115 11.115 0 0 1-1.117-.196 11.283 11.283 0 0 1-3.577-1.48c-5.295-3.369-6.866-10.423-3.502-15.723 3.366-5.301 10.412-6.874 15.709-3.504 5.296 3.368 6.866 10.422 3.5 15.723a11.317 11.317 0 0 1-2.86 3.053 11.4 11.4 0 0 1-4.72 2.029c-1.127.203-2.284.24-3.433.098m12.57-4.19c3.911-6.16 2.085-14.358-4.069-18.271-6.154-3.915-14.342-2.089-18.253 4.072-3.91 6.16-2.085 14.356 4.07 18.271 6.153 3.915 14.343 2.09 18.252-4.072"
></path>
<path
fill="#FFD399"
d="M93.445 12.554c2.45 5.367.088 11.707-5.274 14.159-5.361 2.452-11.695.088-14.145-5.279-2.449-5.368-.088-11.707 5.275-14.16 5.361-2.452 11.695-.088 14.144 5.28"
></path>
<path
fill="#FFD399"
d="M91.45 28.239l-4.274 1.954a2.697 2.697 0 0 1-3.574-1.334l-2.775-6.08a2.7 2.7 0 0 1 1.333-3.578l4.274-1.955a2.696 2.696 0 0 1 3.575 1.334l2.775 6.08a2.702 2.702 0 0 1-1.333 3.579"
></path>
<path
fill="#5A5C5D"
d="M94.1 30.6l-6.9 3.156a1.255 1.255 0 0 1-1.043-2.284l6.902-3.155a1.253 1.253 0 1 1 1.04 2.282m1.275 2.794l-6.9 3.156a1.254 1.254 0 1 1-1.041-2.283l6.9-3.156a1.254 1.254 0 0 1 1.041 2.283m-1.682 1.387l-3.044 1.392c-.458.21-.4.889.09 1.006.685.164 1.425.11 2.115-.207a3.25 3.25 0 0 0 1.54-1.464c.233-.449-.241-.936-.701-.727"
></path>
<g transform="rotate(-69 92.268 -44.056)">
<mask id="b" fill="#fff">
<use xlinkHref="#a"></use>
</mask>
<path
fill="#C42B34"
d="M.732 4.08l.397-1.844a1.999 1.999 0 1 1 3.91.842l-.396 1.846A2 2 0 1 1 .732 4.08"
mask="url(#b)"
></path>
</g>
<path
fill="#E1CFB4"
d="M86.458 79.011l-1.334 7.43 6.268-4.21-2.12-2.355z"
></path>
<path
fill="#FECB86"
d="M103.266 56.87l-1.644-1.073-14.841 22.72 1.643 1.072z"
></path>
<path
fill="#FAA736"
d="M104.912 57.945l-1.644-1.074-14.841 22.72 1.644 1.073z"
></path>
<path
fill="#FECB86"
d="M90.071 80.664l1.644 1.072 14.842-22.72-1.645-1.072zm-3.306-.951c.31.203.774-.055 1.188.215a.513.513 0 0 1 .152.15l.32-.488-1.644-1.073-.297.453s-.028.542.281.743"
></path>
<path
fill="#FAA736"
d="M88.106 80.078c.205.277.111.67.548.956.44.286.764.042 1.098.118l.32-.488-1.648-1.075-.318.489z"
></path>
<path
fill="#FECB86"
d="M89.752 81.152a.507.507 0 0 1 .198.08c.414.27.365.797.675 1 .311.204.794-.041.794-.041l.296-.454-1.644-1.073-.32.488z"
></path>
<path
fill="#535756"
d="M85.123 86.44l2.22-1.488-1.749-1.14zm21.434-27.423l-4.935-3.22.437-.67 4.935 3.22z"
></path>
</g>
</svg>
);
+51
View File
@@ -0,0 +1,51 @@
import React, { forwardRef } from "react";
import cl from "classnames";
import { OverridableComponent } from "../util";
export type PanelType = OverridableComponent<PanelProps>;
export interface PanelProps {
props: {
/**
* Component content
*/
children: React.ReactNode;
/**
* @ignore
*/
className?: string;
/**
* Adds a border to the panel
* @default false
*/
border?: boolean;
} & React.HTMLAttributes<HTMLElement>;
defaultComponent: "div";
}
const Panel: PanelType = forwardRef(
(
{
children,
className,
border = false,
component: Component = "div",
...rest
},
ref
) => {
return (
<Component
ref={ref}
className={cl("navds-panel", className, {
"navds-panel--border": border,
})}
{...rest}
>
{children}
</Component>
);
}
);
export default Panel;
+2
View File
@@ -0,0 +1,2 @@
export { default as Panel } from "./Panel";
export * from "./Panel";
@@ -0,0 +1,38 @@
import React from "react";
import { Panel } from "../index";
import { Meta } from "@storybook/react/types-6-0";
export default {
title: "ds-react/panel",
component: Panel,
} as Meta;
export const All = () => {
return (
<div>
<h1>Panel</h1>
<Panel>
Eu quis exercitation voluptate ex. Aute irure esse occaecat minim
cupidatat velit minim duis sint culpa anim laboris. Consectetur nulla eu
commodo ea culpa velit commodo incididunt sunt ipsum. Amet anim
adipisicing minim ipsum do. Non laborum culpa reprehenderit est sint
officia quis excepteur. Fugiat eiusmod eiusmod commodo incididunt nisi
minim ex eu cupidatat quis ex. Lorem irure ea ea enim consectetur ea
aliqua cupidatat. Officia aute veniam aute exercitation ipsum aliqua
adipisicing. Est aliqua ad ullamco aute nostrud amet ea adipisicing
consequat id officia irure pariatur. Eu mollit amet culpa culpa velit.
</Panel>
<h2>With border</h2>
<Panel border>
Eu quis exercitation voluptate ex. Aute irure esse occaecat minim
cupidatat velit minim duis sint culpa anim laboris. Consectetur nulla eu
commodo ea culpa velit commodo incididunt sunt ipsum. Amet anim
adipisicing minim ipsum do. Non laborum culpa reprehenderit est sint
officia quis excepteur. Fugiat eiusmod eiusmod commodo incididunt nisi
minim ex eu cupidatat quis ex. Lorem irure ea ea enim consectetur ea
aliqua cupidatat. Officia aute veniam aute exercitation ipsum aliqua
adipisicing. Est aliqua ad ullamco aute nostrud amet ea adipisicing
consequat id officia irure pariatur. Eu mollit amet culpa culpa velit.
</Panel>
</div>
);
};
+7 -1
View File
@@ -21,7 +21,13 @@ const Tag = forwardRef<HTMLSpanElement, TagProps>(
return (
<span
ref={ref}
className={cl("navds-tag", className, `navds-tag--${variant}`)}
className={cl(
"navds-tag",
className,
"navds-detail",
"navds-detail--s",
`navds-tag--${variant}`
)}
{...rest}
>
{children}
@@ -0,0 +1,44 @@
import React, { forwardRef } from "react";
import cl from "classnames";
import { OverridableComponent } from "../util";
export interface BodyLongProps {
props: {
/**
* M: 18px, S: 16px
* @default "m"
*/
size?: "m" | "s";
/**
* Component content
*/
children: React.ReactNode;
/**
* Custom styling on element
*/
className?: string;
/**
* Adds margins to typo
*/
spacing?: boolean;
} & React.HTMLAttributes<HTMLParagraphElement>;
defaultComponent: "p";
}
const BodyLong: OverridableComponent<BodyLongProps> = forwardRef(
(
{ className, size = "m", spacing, component: Component = "p", ...rest },
ref
) => (
<Component
{...rest}
ref={ref}
className={cl(className, "navds-body-long", {
"navds-body--s": size === "s",
"navds-typo--spacing": !!spacing,
})}
/>
)
);
export default BodyLong;
@@ -0,0 +1,44 @@
import React, { forwardRef } from "react";
import cl from "classnames";
import { OverridableComponent } from "../util/OverridableComponent";
export interface BodyShortProps {
props: {
/**
* M: 18px, S: 16px
* @default "m"
*/
size?: "m" | "s";
/**
* Component content
*/
children: React.ReactNode;
/**
* Custom styling on element
*/
className?: string;
/**
* Adds margins to typo
*/
spacing?: boolean;
} & React.HTMLAttributes<HTMLParagraphElement>;
defaultComponent: "p";
}
const BodyShort: OverridableComponent<BodyShortProps> = forwardRef(
(
{ className, size = "m", spacing, component: Component = "p", ...rest },
ref
) => (
<Component
{...rest}
ref={ref}
className={cl(className, "navds-body-short", {
"navds-body--s": size === "s",
"navds-typo--spacing": !!spacing,
})}
/>
)
);
export default BodyShort;
@@ -0,0 +1,44 @@
import React, { forwardRef } from "react";
import cl from "classnames";
import { OverridableComponent } from "../util";
export interface DetailProps {
props: {
/**
* M: 18px, S: 16px
* @default "m"
*/
size?: "m" | "s";
/**
* Component content
*/
children: React.ReactNode;
/**
* Custom styling on element
*/
className?: string;
/**
* Adds margins to typo
*/
spacing?: boolean;
} & React.HTMLAttributes<HTMLParagraphElement>;
defaultComponent: "p";
}
const Detail: OverridableComponent<DetailProps> = forwardRef(
(
{ className, size = "m", spacing, component: Component = "p", ...rest },
ref
) => (
<Component
{...rest}
ref={ref}
className={cl(className, "navds-detail", {
"navds-detail--s": size === "s",
"navds-typo--spacing": !!spacing,
})}
/>
)
);
export default Detail;
@@ -1,26 +0,0 @@
import React, { forwardRef } from "react";
import cl from "classnames";
export interface HeadingProps extends React.HTMLAttributes<HTMLHeadingElement> {
level: 1 | 2 | 3 | 4 | 5 | 6;
size: "xxl" | "xl" | "large" | "medium" | "small";
children: React.ReactNode;
}
const Heading = forwardRef<HTMLHeadingElement, HeadingProps>(
({ level, size, className, children, ...rest }, ref) => {
let HeadingTag = `h${level}` as React.ElementType;
return (
<HeadingTag
{...rest}
ref={ref}
className={cl(className, "navds-heading", `navds-heading--${size}`)}
>
{children}
</HeadingTag>
);
}
);
export default Heading;
@@ -0,0 +1,35 @@
import React, { forwardRef } from "react";
import cl from "classnames";
import { OverridableComponent } from "../util";
export interface IngressProps {
props: {
/**
* Component content
*/
children: React.ReactNode;
/**
* Custom styling on element
*/
className?: string;
/**
* Adds margins to typo
*/
spacing?: boolean;
} & React.HTMLAttributes<HTMLParagraphElement>;
defaultComponent: "p";
}
const Ingress: OverridableComponent<IngressProps> = forwardRef(
({ className, spacing, component: Component = "p", ...rest }, ref) => (
<Component
{...rest}
ref={ref}
className={cl(className, "navds-ingress", {
"navds-typo--spacing": !!spacing,
})}
/>
)
);
export default Ingress;
+44
View File
@@ -0,0 +1,44 @@
import React, { forwardRef } from "react";
import cl from "classnames";
import { OverridableComponent } from "../util";
export interface LabelProps {
props: {
/**
* M: 18px, S: 16px
* @default "m"
*/
size?: "m" | "s";
/**
* Component content
*/
children: React.ReactNode;
/**
* Custom styling on element
*/
className?: string;
/**
* Adds margins to typo
*/
spacing?: boolean;
} & React.HTMLAttributes<HTMLParagraphElement>;
defaultComponent: "p";
}
const Label: OverridableComponent<LabelProps> = forwardRef(
(
{ className, size = "m", spacing, component: Component = "p", ...rest },
ref
) => (
<Component
{...rest}
ref={ref}
className={cl(className, "navds-label", {
"navds-label--s": size === "s",
"navds-typo--spacing": !!spacing,
})}
/>
)
);
export default Label;
-11
View File
@@ -1,11 +0,0 @@
import React, { forwardRef } from "react";
import cl from "classnames";
const Lead = forwardRef<
HTMLParagraphElement,
React.HTMLAttributes<HTMLParagraphElement>
>(({ className, ...rest }, ref) => (
<p {...rest} ref={ref} className={cl(className, "navds-article__lead")} />
));
export default Lead;
@@ -1,15 +0,0 @@
import React, { forwardRef } from "react";
import cl from "classnames";
const Paragraph = forwardRef<
HTMLParagraphElement,
React.HTMLAttributes<HTMLParagraphElement>
>(({ className, ...rest }, ref) => (
<p
{...rest}
ref={ref}
className={cl(className, "navds-article__paragraph")}
/>
));
export default Paragraph;
-21
View File
@@ -1,21 +0,0 @@
import React, { forwardRef } from "react";
import cl from "classnames";
export interface TextProps extends React.HTMLAttributes<HTMLSpanElement> {
size: "large" | "medium" | "small" | "xs";
children: React.ReactNode;
}
const Text = forwardRef<HTMLSpanElement, TextProps>(
({ size, className, children, ...rest }, ref) => (
<span
{...rest}
ref={ref}
className={cl(className, "navds-text", `navds-text--${size}`)}
>
{children}
</span>
)
);
export default Text;
+49
View File
@@ -0,0 +1,49 @@
import React, { forwardRef } from "react";
import cl from "classnames";
import { OverridableComponent } from "../util";
export interface TitleProps extends React.HTMLAttributes<HTMLHeadingElement> {
props: {
/**
* Heading level
*/
level: 1 | 2 | 3 | 4 | 5;
/**
* Sizes from largest "2xl" to smallest "s"
*/
size: "2xl" | "xl" | "l" | "m" | "s";
/**
* Heading to render
*/
children: React.ReactNode;
/**
* Custom styling on element
*/
className?: string;
/**
* Adds margins to typo
*/
spacing?: boolean;
} & React.HTMLAttributes<HTMLParagraphElement>;
defaultComponent: "h1";
}
const Title: OverridableComponent<TitleProps> = forwardRef(
({ level, size, spacing, className, children, component, ...rest }, ref) => {
let HeadingTag = component ?? (`h${level}` as React.ElementType);
return (
<HeadingTag
{...rest}
ref={ref}
className={cl(className, "navds-title", `navds-title--${size}`, {
"navds-typo--spacing": !!spacing,
})}
>
{children}
</HeadingTag>
);
}
);
export default Title;
+6 -8
View File
@@ -1,8 +1,6 @@
export { default as Heading } from "./Heading";
export * from "./Heading";
export { default as Text } from "./Text";
export * from "./Text";
export { default as Paragraph } from "./Paragraph";
export * from "./Paragraph";
export { default as Lead } from "./Lead";
export * from "./Lead";
export { default as Title } from "./Title";
export { default as Ingress } from "./Ingress";
export { default as BodyLong } from "./BodyLong";
export { default as BodyShort } from "./BodyShort";
export { default as Detail } from "./Detail";
export { default as Label } from "./Label";
@@ -0,0 +1,3 @@
.typo-story > div:nth-child(even) {
background: var(--navds-color-gray-20);
}
@@ -1,116 +1,137 @@
import React from "react";
import { Heading, Text, Paragraph, Lead } from "../index";
import { Title, BodyShort, BodyLong, Detail, Ingress, Label } from "../index";
import "./index.css";
export default {
title: "ds-react/typography",
component: Heading,
component: BodyLong,
};
export const heading = () => {
return (
export const TypoMedSpacing = () => <TypoMal spacing={true} />;
export const TypoUtenSpacing = () => <TypoMal spacing={false} />;
const TypoMal = ({ ...rest }) => {
const lorem = (text) => (
<>
<Heading level={1} size="xxl">
xxl
</Heading>
<Heading level={2} size="xl">
xl
</Heading>
<Heading level={3} size="large">
large
</Heading>
<Heading level={4} size="medium">
medium
</Heading>
<Heading level={5} size="small">
small
</Heading>
{text} <br /> Veniam consequat cillum pariatur officia duis aute labore
anim labore. Pariatur ad duis do nulla.
</>
);
};
export const text = () => {
return (
<div style={{ display: "flex", flexDirection: "column" }}>
<Text size="large">large</Text>
<Text size="medium">medium</Text>
<Text size="small">small</Text>
<Text size="xs">xs</Text>
<div
className="typo-story"
style={{
display: "flex",
flexDirection: "column",
}}
>
<div>
<Title {...rest} level={1} size="2xl">
{lorem("Title 2xl")}
</Title>
<Title {...rest} level={2} size="xl">
{lorem("Title xl")}
</Title>
<Title {...rest} level={3} size="l">
{lorem("Title l")}
</Title>
<Title {...rest} level={4} size="m">
{lorem("Title m")}
</Title>
<Title {...rest} level={5} size="s">
{lorem("Title s")}
</Title>
</div>
<div>
<Ingress {...rest}>{lorem("Ingress")}</Ingress>
</div>
<div>
<BodyLong {...rest}>{lorem("BodyLong")}</BodyLong>
<BodyLong {...rest} size="s">
{lorem("BodyLong small")}
</BodyLong>
</div>
<div>
<BodyShort component="span" {...rest} {...rest}>
{lorem("BodyShort")}
</BodyShort>
<BodyShort {...rest} size="s">
{lorem("BodyShort small")}
</BodyShort>
</div>
<div>
<Label {...rest}>{lorem("Label")}</Label>
<Label {...rest} size="s">
{lorem("Label small")}
</Label>
</div>
<div>
<Detail {...rest}>{lorem("Detail")}</Detail>
<Detail {...rest} size="s">
{lorem("Detail small")}
</Detail>
</div>
</div>
);
};
export const article = () => {
export const SideInnholdEksempel = () => {
return (
<article>
<Heading level={1} size="xxl">
Uføretrygd
</Heading>
<Lead>
Uføretrygd kan være aktuelt for deg som har varig nedsatt inntektsevne
på grunn av sykdom eller skade.
</Lead>
<Paragraph>
Uføretrygden erstatter den delen av inntektsevnen du har tapt på grunn
av varig sykdom eller skade.
</Paragraph>
<Paragraph>
Om du har rett til 100 prosent uføretrygd eller gradert (delvis)
uføretrygd, er avhengig av inntektsevnen din. Har du mulighet til å
jobbe for eksempel 40 prosent, kan du ha rett til 60 prosent uføretrygd.{" "}
</Paragraph>
<p>
Anim duis aliqua ad culpa amet ad. Anim deserunt veniam laborum commodo
in excepteur reprehenderit. Sunt occaecat velit fugiat qui Lorem officia
reprehenderit elit cillum occaecat. Lorem laborum adipisicing non qui
consectetur do minim nostrud adipisicing qui. Sint et dolore commodo
cillum elit magna reprehenderit labore consequat reprehenderit magna
consequat qui. Ullamco eu sunt cupidatat laborum. Velit eu ex culpa
voluptate proident tempor deserunt. Do pariatur consequat incididunt ad
ut velit. Ea nisi eiusmod aliquip laboris nulla in ipsum amet sunt
magna. Laboris pariatur nisi in culpa adipisicing sit esse esse. Ullamco
dolore mollit minim dolor reprehenderit. Velit ipsum proident nostrud
laborum non. Sunt consequat aute quis minim reprehenderit ipsum sunt
ipsum.
</p>
<Heading level={2} size="xl">
Hvem kan få uføretrygd?
</Heading>
<Paragraph>
For å ha rett til å få uføretrygd må du som hovedregel oppfylle disse
vilkårene:
</Paragraph>
<ul>
<li>Du må være mellom 18 og 67 år.</li>
<li>
Du må ha vært medlem av folketrygden i de siste tre årene før du ble
syk.
</li>
<li>
Sykdom og/eller skade må være hovedårsaken til at inntektsevnen din er
nedsatt.
</li>
<li>
Hensiktsmessig behandling og arbeidsrettede tiltak må være
gjennomført.
</li>
<li>
Inntektsevnen din må være varig nedsatt med minst 50 prosent på grunn
av sykdom og/eller skade.
</li>
</ul>
<Paragraph>
Mottar du{" "}
<a href="https://www.nav.no/no/person/arbeid/arbeidsavklaringspenger/arbeidsavklaringspenger-aap">
arbeidsavklaringspenger
</a>{" "}
på søknadstidspunktet er det tilstrekkelig at inntektsevnen din er varig
nedsatt med minst 40 prosent. Skyldes uførheten en godkjent{" "}
<a href="https://www.nav.no/no/person/arbeid/yrkesskade-og-yrkessykdom">
yrkesskade eller yrkessykdom
</a>
, er det tilstrekkelig at inntektsevnen din er varig nedsatt med minst
30 prosent.
</Paragraph>
</article>
<div style={{ maxWidth: 600 }}>
<Title level={1} size="2xl" spacing>
Title lvl 1 2xl
</Title>
<BodyLong spacing>
BodyLong: Aliqua ad et nisi commodo sit excepteur in commodo proident
proident. Nostrud consectetur dolore eu nostrud aliqua. Adipisicing
labore aliqua qui velit amet ea amet do. Magna anim velit et incididunt.
Lorem ad pariatur pariatur quis magna cupidatat. Exercitation officia
occaecat occaecat id nulla fugiat laborum elit laboris non est ex
nostrud occaecat. Commodo laboris veniam cillum in aute.
</BodyLong>
<BodyLong spacing>
BodyLong: Cillum consequat velit est ea voluptate. Et elit irure magna
sit consequat mollit excepteur ad non excepteur velit exercitation aute.
Fugiat deserunt quis nulla cupidatat esse quis ex. Laborum eiusmod culpa
labore eu irure quis laborum. Irure veniam et nostrud do. Quis ut ea est
culpa tempor anim.
</BodyLong>
<BodyLong spacing>
BodyLong: Dolore commodo ad veniam commodo aute voluptate est officia
sunt proident irure consectetur excepteur.
</BodyLong>
<Title level={2} size="xl" spacing>
Title lvl 2 xl
</Title>
<Ingress spacing>
Ingress: Mollit incididunt incididunt officia amet est et non aliqua
officia nulla et aute aliqua culpa.
</Ingress>
<BodyLong spacing>
BodyLong: Commodo veniam enim laborum pariatur excepteur commodo do
cillum. Nisi elit sunt commodo id in adipisicing cupidatat dolore dolore
et tempor cupidatat. Cillum quis sunt in dolor occaecat.
</BodyLong>
<BodyLong spacing>
BodyLong: Irure dolore laborum amet occaecat ex laboris mollit
reprehenderit nisi laborum voluptate laborum. Ipsum eu sint laborum
adipisicing ut incididunt laborum laborum. Ipsum non amet laboris quis
Lorem est laborum qui pariatur ex eu. Eiusmod proident amet esse ex.
</BodyLong>
<BodyLong size="s" spacing>
BodyLong small: Irure dolore laborum amet occaecat ex laboris mollit
reprehenderit nisi laborum voluptate laborum. Ipsum eu sint laborum
adipisicing ut incididunt laborum laborum. Ipsum non amet laboris quis
Lorem est laborum qui pariatur ex eu. Eiusmod proident amet esse ex.
</BodyLong>
<BodyShort spacing>
BodyShort: Id consectetur velit sunt laboris consequat ullamco
incididunt.
</BodyShort>
<BodyShort size="s" spacing>
BodyShort small: Sunt amet officia sit excepteur sit pariatur sit
reprehenderit irure ipsum.
</BodyShort>
</div>
);
};
+14
View File
@@ -0,0 +1,14 @@
const StyleDictionary = require("style-dictionary");
const kebabCase = require("./kebabCase");
StyleDictionary.registerTransform({
name: "name/cti/kebab",
type: "name",
transformer: (prop, options) =>
kebabCase([options.prefix].concat(prop.path).join(" ")),
});
const StyleDictionaryExtended = StyleDictionary.extend(
__dirname + "/config.json"
);
StyleDictionaryExtended.buildAllPlatforms();
+4
View File
@@ -38,6 +38,10 @@
{
"destination": "tokens.js",
"format": "javascript/es6"
},
{
"destination": "tokens-cjs.js",
"format": "javascript/module"
}
]
}
+4
View File
@@ -0,0 +1,4 @@
const _ = require("lodash");
module.exports = (string) =>
_.kebabCase(string).replace(/(^|-)(\d+)-(x[ls])/g, "$1$2$3");
+26
View File
@@ -0,0 +1,26 @@
const kebabCase = require("./kebabCase");
describe("kebabCase", () => {
[
"foo bar",
"Foo bar",
"foo Bar",
"Foo Bar",
"FOO BAR",
"fooBar",
"--foo-bar--",
"__foo_bar__",
].forEach((string) =>
test(`${string} is converted to foo-bar`, () => {
expect(kebabCase(string)).toBe("foo-bar");
})
);
test(`spacing 3xl is converted to spacing-3xl`, () => {
expect(kebabCase("spacing 3xl")).toBe("spacing-3xl");
});
test(`3xs is converted to 3xs`, () => {
expect(kebabCase("3xs")).toBe("3xs");
});
});
+6 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@navikt/ds-tokens",
"version": "0.1.3",
"version": "0.3.1",
"private": false,
"description": "Auto-generated design-tokens for NAV design-systems framework",
"author": "NAV Designsystem team",
@@ -17,9 +17,10 @@
"/src"
],
"scripts": {
"build": "style-dictionary build",
"build": "node ./build.js",
"watch": "nodemon --watch src/index.js --exec \"yarn build\"",
"token": "style-dictionary build"
"token": "style-dictionary build",
"test": "jest"
},
"repository": {
"type": "git",
@@ -28,6 +29,8 @@
},
"devDependencies": {
"color": "^3.1.3",
"jest": "^26.6.3",
"lodash": "^4.17.21",
"nodemon": "^2.0.6",
"style-dictionary": "^2.10.2"
}
+80 -54
View File
@@ -1,5 +1,23 @@
const Color = require("color");
const baseFontSize = 16;
const getFontSize = (size) => `${size / baseFontSize}rem`;
// https://github.com/hihayk/scale/blob/69b766bba2db046d3e8cb4026ae32a32c897f9ff/src/utils.js#L44
const mixColors = (color, step, amount, mixColor) => {
const saturation = Math.round(Color(color).hsl().color[1]);
// Setting directly to hex returns different result...
return Color(
Color(color)
.saturate(((step + 1) / 5) * (saturation / 100))
.mix(Color(mixColor), ((amount / 100) * (step + 1)) / 5)
.string()
).hex();
};
const lightColor = (color, step) => mixColors(color, step, 100, "white");
const darkColor = (color, step) => mixColors(color, step, 85, "black");
const baseColors = {
blue: "#0067c5",
deepblue: "#005B82",
@@ -7,17 +25,15 @@ const baseColors = {
orange: "#FF9100",
green: "#06893A",
red: "#BA3A26",
purple: "#634689",
limegreen: "#a2ad00",
};
const white = "#ffffff";
const darkgray = "#3e3832";
const darkgray = "#262626";
const lightgray = "#F1F1F1";
const mix = (a, b, percentage) =>
Color(a)
.mix(Color(b), percentage / 100)
.hex();
const darken = (color, percentage) => mix(color, darkgray, percentage);
const lighten = (color, percentage) => mix(color, white, percentage);
const gray = (n) => Color(lightgray).mix(Color(darkgray), n).hex();
module.exports = {
navds: {
@@ -25,26 +41,26 @@ module.exports = {
white: { value: white },
darkgray: { value: darkgray },
gray: {
90: { value: "#262626" },
80: { value: "#4F4F4F" },
60: { value: "#6A6A6A" },
40: { value: "#A0A0A0" },
20: { value: "#C9C9C9" },
10: { value: "#F1F1F1" },
90: { value: gray(1) },
80: { value: gray(0.8) },
60: { value: gray(0.6667) },
40: { value: gray(0.4) },
20: { value: gray(0.196) },
10: { value: gray(0) },
},
...Object.entries(baseColors).reduce(
(colors, [name, color]) => ({
...colors,
[name]: {
90: { value: darken(color, 80) },
80: { value: darken(color, 60) },
70: { value: darken(color, 40) },
60: { value: darken(color, 20) },
90: { value: darkColor(color, 3) },
80: { value: darkColor(color, 2) },
70: { value: darkColor(color, 1) },
60: { value: darkColor(color, 0) },
50: { value: color },
40: { value: lighten(color, 20) },
30: { value: lighten(color, 40) },
20: { value: lighten(color, 60) },
10: { value: lighten(color, 80) },
40: { value: lightColor(color, 0) },
30: { value: lightColor(color, 1) },
20: { value: lightColor(color, 2) },
10: { value: lightColor(color, 3) },
},
}),
{}
@@ -52,12 +68,12 @@ module.exports = {
disabled: { value: "{navds.color.gray.40.value}" },
action: {
default: { value: "{navds.color.blue.50.value}" },
hover: { value: lighten(baseColors.blue, 5) },
hover: { value: Color(baseColors.blue).lighten(0.1) },
active: { value: "{navds.color.deepblue.50.value}" },
},
danger: {
default: { value: "{navds.color.red.50.value}" },
hover: { value: lighten(baseColors.red, 5) },
hover: { value: Color(baseColors.red).lighten(0.1) },
active: { value: "{navds.color.red.70.value}" },
},
error: {
@@ -79,7 +95,7 @@ module.exports = {
border: { value: "{navds.color.gray.40.value}" },
background: { value: "{navds.color.white.value}" },
text: {
primary: { value: "{navds.color.darkgray.value}" },
primary: { value: "{navds.color.gray.90}" },
inverse: { value: "{navds.color.white.value}" },
disabled: { value: "{navds.color.gray.60.value}" },
link: { value: "{navds.color.blue.50.value}" },
@@ -89,24 +105,24 @@ module.exports = {
tag: {
error: {
border: { value: "{navds.color.red.50.value}" },
background: { value: "{navds.color.red.20.value}" },
background: { value: "{navds.color.red.10.value}" },
},
warning: {
border: { value: "{navds.color.orange.60.value}" },
background: { value: "{navds.color.orange.20.value}" },
background: { value: "{navds.color.orange.10.value}" },
},
info: {
border: { value: "{navds.color.lightblue.70.value}" },
background: { value: "{navds.color.lightblue.20.value}" },
background: { value: "{navds.color.lightblue.10.value}" },
},
success: {
border: { value: "{navds.color.green.50.value}" },
background: { value: "{navds.color.green.20.value}" },
background: { value: "{navds.color.green.10.value}" },
},
},
modal: {
overlay: {
value: "rgba(61, 56, 49, 0.7)",
value: "rgba(38, 38, 38, 0.7)",
},
},
},
@@ -121,35 +137,45 @@ module.exports = {
},
font: {
family: { value: '"Source Sans Pro", Arial, sans-serif' },
line: {
height: {
"2xl": { value: getFontSize(52) },
xl: { value: getFontSize(40) },
l: { value: getFontSize(36) },
m: { value: getFontSize(32) },
s: { value: getFontSize(28) },
xs: { value: getFontSize(24) },
"2xs": { value: getFontSize(20) },
},
},
size: {
heading: {
xxl: { value: "2.5rem" },
xl: { value: "2rem" },
large: { value: "1.5rem" },
medium: { value: "1.25rem" },
small: { value: "1.125rem" },
},
large: { value: "1.25rem" },
medium: { value: "1.125rem" },
small: { value: "1rem" },
xs: { value: "0.875rem" },
article: {
lead: { value: "1.25rem" },
paragraph: { value: "1.125rem" },
title: {
"2xl": { value: getFontSize(40) },
xl: { value: getFontSize(32) },
l: { value: getFontSize(28) },
m: { value: getFontSize(24) },
s: { value: getFontSize(20) },
},
xl: { value: getFontSize(20) },
l: { value: getFontSize(18) },
m: { value: getFontSize(16) },
s: { value: getFontSize(14) },
},
spacing: {
"3xl": { value: getFontSize(40) },
"2xl": { value: getFontSize(36) },
xl: { value: getFontSize(32) },
l: { value: getFontSize(28) },
m: { value: getFontSize(24) },
s: { value: getFontSize(20) },
xs: { value: getFontSize(16) },
"2xs": { value: getFontSize(12) },
"3xs": { value: getFontSize(8) },
},
weight: {
bold: { value: "600" },
regular: { value: "400" },
},
line: {
height: {
large: { value: "1.625rem" },
medium: { value: "1.5rem" },
small: { value: "1.375rem" },
xs: { value: "1.25rem" },
},
},
},
shadow: {
focus: { value: "0 0 0 3px {navds.color.blue.80.value}" },
@@ -175,8 +201,8 @@ module.exports = {
},
layout: {
background: {
white: { value: "#FFFFFF" },
gray: { value: "#F1F1F1" },
white: { value: white },
gray: { value: "{navds.color.gray.10.value}" },
},
padding: {
small: { value: "1rem" },
+148
View File
@@ -1,5 +1,153 @@
# Endringslogg
## 02. Juni 2021
### Nytt typo-oppsett for ds-react, ds-css og ds-tokens
[#1079](https://github.com/navikt/nav-frontend-moduler/pull/1079)
[Typo med spacing](https://navikt.github.io/Designsystemet/?path=/story/ds-react-typography--typo-med-spacing)
[Typo uten spacing](https://navikt.github.io/Designsystemet/?path=/story/ds-react-typography--typo-uten-spacing)
[Bruks eksempel](https://navikt.github.io/Designsystemet/?path=/story/ds-react-typography--side-innhold-eksempel)
Ds-react, ds-css og ds-tokens er alle minor-bumpet
Nye komponenter for typografi:
- Title: Heading
- Ingress
- BodyLong: Lengre tekster, tenk en vanlig paragraf
- BodyShort: Mindre tekster, tenk teksten på en knapp eller label
- Label
- Detail: Detaljetekst på 14px
Ds-css og ds-tokens er endret for å tilrettelegge for disse. Diverse komponenter i ds-react bruker nå også typo-stilene for å sikre riktig typo.
## 21. Mai 2021
### Popover-position oppdateres nå onMount
[#1104](https://github.com/navikt/nav-frontend-moduler/pull/1104)
- Hvis popover mountes med `ankerEl` så vil posisjon oppdateres riktig nå.
- OPS! Tilfeller ved bruk av useRef som `ankerEl` kan føre til feil i posisjonering da Popover mountes med `ankerEl == null`, og da oppdatering av ref ikke fører til props oppdatering siden det er en ref. Anbefales å ta i bruk state for `ankerEl`
## 19. Mai 2021
### Oppdatert fargepalett
[#1092](https://github.com/navikt/nav-frontend-moduler/pull/1092)
- Alle nav-frontend pakker som `nav-frontend-core` berører vil major bumpes, inkludert `na v-frontend-core`.
- `@navikt/ds-tokens`, `@navikt/ds-css` og `@navikt/ds-react` vil minor bumpes
- `orangeFocus` og alle variantene av denne fargen er fjernet fra `nav-frontend-core`
- `navRod`sine lighten/darken varianter er fjernet fra `nav-frontend-core`. Bruk `redError` som erstattning.
- `@navikt/ds-tokens` har nå `purple` og `limegreen` farger tilgjengelige
### Prop for hvit bakgrunn på veileder sin snakkeboble
[#1099](https://github.com/navikt/nav-frontend-moduler/pull/1099)
- Kan nå bruke prop `hvitSnakkeboble` for å setteakgrunnen på snakkeboble til hvit.
## 18. Mai 2021
### Oppdatert bakgrunnsfarge på Tag/Etikett for å synke med figma
[#1097](https://github.com/navikt/nav-frontend-moduler/pull/1097)
[#1094](https://github.com/navikt/nav-frontend-moduler/pull/1094)
- Bakgrunnene til de fire komponent-variasjonenen er nå endret til `Lighten80` istedenfor `Lighten60`
### Oppdatert textareaRef prop for textarea-controlled
[#1098](https://github.com/navikt/nav-frontend-moduler/pull/1098)
- Legger på optional argument i textareaRef-propen på samme måte som i Textarea-componenten.
### BekreftCheckboksPanel label har nå underline onHover
[#1095](https://github.com/navikt/nav-frontend-moduler/pull/1095)
- Fikser en uu-feil hvor forskjellen på default og hover stil ikke var stor nok.
## 14. Mai 2021
### @navikt/ds-tokens eksporteres nå også i CommonJs format
## 13. Mai 2021
### Typeguard for children i Tekstomrade-komponenten
[#1089](https://github.com/navikt/nav-frontend-moduler/pull/1089)
- Sjekker at children == string, hvis ikke return null
## 04. Mai 2021
### Forbedret scroll-behavior for sticky-panel
[#1084](https://github.com/navikt/nav-frontend-moduler/pull/1084)
- Oppførselen til menyen scrollet separat på mobil-skjermer (< 648px), noe som førte til en litt rar interaksjon. Menyen og innholdet under flyter nå naturlig uten noen overflow og max-height.
## 30. April 2021
### xxxl -> 3xl etc
[#1086](https://github.com/navikt/nav-frontend-moduler/pull/1086)
### AnchorMenu history-state fiks
[#1085](https://github.com/navikt/nav-frontend-moduler/pull/1085)
- Beholder state-objektet når history oppdateres ved scrolling med anchor-menu. Dette benyttes ved async navigering mellom sider i bl.a. next.js, og denne vil brekke dersom state'en overskrives.
- Bruker replaceState istedenfor pushState slik at frem/tilbake-knapper i browser oppfører seg mer som forventet
## 27. April 2021
### Kan nå bruke className på `Popover`-komponent
[#1082](https://github.com/navikt/nav-frontend-moduler/pull/1082)
- Bruker kan nå bruke className som en prop på `<Popover />` uten at den overskriver komponentens styling
### Fikser Checkbokspanel focus+feil markering
[#1081](https://github.com/navikt/nav-frontend-moduler/pull/1081)
- Fokusmarkering vises nå når man har focus + feil
## 21. April 2021
## Active stil for secondary/normal-knapp er endret for å skille seg fra hover
[#1062](https://github.com/navikt/nav-frontend-moduler/pull/1062)
## 19. April 2021
### Modal-overlay klasse for @navikt/ds-css er nå `fixed
[#1074](https://github.com/navikt/nav-frontend-moduler/pull/1074)
- `absolute -> fixed`
## 16. April 2021
### Fokusmarkering forsvinner ikke nå onHover
[#1072](https://github.com/navikt/nav-frontend-moduler/pull/1072)
### Scroll er nå bare "smooth" onFocus
[#1071](https://github.com/navikt/nav-frontend-moduler/pull/1071)
Smooth-scroll bare satt i html:focus-within
Slipper da at det er smooth-scroll når man gjør eks ctrl + f søk på siden.
Takk for tips @winsvold !
## 08. April 2021
### Gråskala er endret i `nav-frontend-core`
+6 -6
View File
@@ -1,5 +1,5 @@
import { ErrorFilled, Settings, SuccessFilled } from "@navikt/ds-icons";
import { Alert, Heading, Link, Paragraph } from "@navikt/ds-react";
import { Alert, Title, Link, BodyLong } from "@navikt/ds-react";
import Alertstripe from "nav-frontend-alertstriper";
import Chevron from "nav-frontend-chevron";
import Ekspanderbartpanel from "nav-frontend-ekspanderbartpanel";
@@ -94,11 +94,11 @@ import Proptable from "./props/Proptable";
import TableOfContents from "./table-of-contents/TableOfContents";
const components = {
h1: (props) => <Heading size="xxl" level={1} {...props} />,
h2: (props) => <Heading size="large" level={2} {...props} />,
h3: (props) => <Heading size="small" level={3} {...props} />,
h4: (props) => <Heading size="small" level={4} {...props} />,
p: (props) => <Paragraph size="medium" {...props} />,
h1: (props) => <Title size="2xl" level={1} spacing {...props} />,
h2: (props) => <Title size="l" level={2} spacing {...props} />,
h3: (props) => <Title size="s" level={3} spacing {...props} />,
h4: (props) => <Title size="s" level={4} spacing {...props} />,
p: (props) => <BodyLong size="m" spacing {...props} />,
a: (props) => <Link {...props} />,
code: (props) => <Inline {...props} />,
SuccessIcon: () => (
+1 -1
View File
@@ -584,7 +584,7 @@ export const Edit = (props) => {
fillRule="evenodd"
clipRule="evenodd"
d="M22.835 1.165a3.976 3.976 0 010 5.623L8.073 21.549.682 24 0 23.318l2.45-7.392L17.21 1.165a3.977 3.977 0 015.624 0zm-4.218 7.029l-2.811-2.812L4.188 17l-1.393 4.205 4.207-1.395L18.618 8.194zM21.43 2.57a1.989 1.989 0 00-2.703-.1l-.108.1-1.406 1.406 2.811 2.812 1.406-1.406a1.988 1.988 0 00.101-2.703l-.1-.109z"
fill="#3E3832"
fill="#262626"
focusable="false"
/>
</svg>
+3 -1
View File
@@ -30,7 +30,9 @@ const Header = ({
<Link href="/">
<button className={"header__link"}>
<NavLogo />
<span className={"header__link-title"}>NAV Designsystem</span>
<span className="header__link-title navds-title navds-title--m">
NAV Designsystem
</span>
</button>
</Link>
</header>
-3
View File
@@ -67,9 +67,6 @@
.header__link-title {
color: white;
font-size: var(--navds-font-size-heading-large);
font-weight: var(--navds-font-weight-bold);
line-height: var(--navds-font-line-height-large);
}
.sidebar {
@@ -1,6 +1,6 @@
import { useContext } from "react";
import { Next } from "@navikt/ds-icons";
import { Heading } from "@navikt/ds-react";
import { Title } from "@navikt/ds-react";
import { PagePropsContext } from "../../pages/_app";
import "./tableOfContents.css";
@@ -9,12 +9,12 @@ const TableOfContents = () => {
return (
<>
<Heading size="large" level={2}>
<Title size="l" spacing level={2}>
Innhold
</Heading>
</Title>
<ul className={"toc__ul"}>
{tableOfContents?.map(({ heading, slug }) => (
<li key={slug} className={"toc__li"}>
<li key={slug} className={"toc__li navds-body-short"}>
<Next
aria-label="Pil peker på lenke"
focusable="false"
@@ -7,8 +7,6 @@
.toc__li {
list-style: none;
margin: 0;
font-size: var(--navds-font-size-medium);
line-height: var(--navds-font-line-height-medium);
color: var(--navds-color-blue-50);
display: flex;
align-items: center;
@@ -13,7 +13,6 @@ const ColorPalette = ({ onClick }: PaletteProps) => (
{[
"redError",
"navOransje",
"orangeFocus",
"navLimeGronn",
"navGronn",
"navLilla",
+2 -2
View File
@@ -250,11 +250,11 @@ const IconPage = () => {
<Systemtittel>{selectedIcon.name}</Systemtittel>
<div className="iconPage__modal--wrapper">
<div>
<p className="iconPage__modalTitle">Fargevelger</p>
<p className="iconPage__modalTitle navds-label">Fargevelger</p>
<ColorSwitch onChange={(c) => setColor(c)} />
</div>
<div style={{ marginLeft: "2rem" }}>
<p className="iconPage__modalTitle">Last ned</p>
<p className="iconPage__modalTitle navds-label">Last ned</p>
<div className="iconPage__modalButton--wrapper">
<Button
size="small"
@@ -107,9 +107,6 @@
&Title {
margin: 0 0 0 0.2rem;
font-size: var(--navds-font-size-heading-small);
line-height: var(--navds-font-line-height-small);
font-weight: var(--navds-font-weight-bold);
}
&Icons {
@@ -1,6 +1,6 @@
{
"name": "nav-frontend-alertstriper-style",
"version": "2.1.1",
"version": "3.0.1",
"main": "src/index.less",
"license": "MIT",
"files": [
@@ -15,15 +15,15 @@
"url": "git+https://github.com/navikt/nav-frontend-moduler.git"
},
"devDependencies": {
"nav-frontend-core": "^5.1.1",
"nav-frontend-ikoner-assets": "^2.0.10",
"nav-frontend-paneler-style": "^1.1.1",
"nav-frontend-typografi-style": "^1.1.1"
"nav-frontend-core": "^6.0.1",
"nav-frontend-ikoner-assets": "^3.0.1",
"nav-frontend-paneler-style": "^2.0.1",
"nav-frontend-typografi-style": "^2.0.1"
},
"peerDependencies": {
"nav-frontend-core": "^5.0.11",
"nav-frontend-ikoner-assets": "^2.0.9",
"nav-frontend-paneler-style": "^1.0.2",
"nav-frontend-typografi-style": "^1.0.33"
"nav-frontend-core": "^6.0.0",
"nav-frontend-ikoner-assets": "^3.0.0",
"nav-frontend-paneler-style": "^2.0.0",
"nav-frontend-typografi-style": "^2.0.0"
}
}
@@ -1,6 +1,6 @@
{
"name": "nav-frontend-alertstriper",
"version": "3.1.1",
"version": "4.0.1",
"main": "lib/alertstripe.js",
"types": "lib/alertstripe.d.ts",
"license": "MIT",
@@ -18,18 +18,18 @@
},
"peerDependencies": {
"classnames": "^2.2.5",
"nav-frontend-alertstriper-style": "^2.0.35",
"nav-frontend-ikoner-assets": "^2.0.9",
"nav-frontend-typografi": "^3.0.2",
"nav-frontend-alertstriper-style": "^3.0.0",
"nav-frontend-ikoner-assets": "^3.0.0",
"nav-frontend-typografi": "^4.0.0",
"prop-types": "^15.5.10",
"react": "^16.8.0 || ^17.0.0"
},
"devDependencies": {
"@types/classnames": "^2.2.3",
"@types/react": "15.0.23 || ^16.0.0",
"nav-frontend-alertstriper-style": "^2.1.1",
"nav-frontend-ikoner-assets": "^2.0.10",
"nav-frontend-typografi": "^3.1.1",
"nav-frontend-alertstriper-style": "^3.0.1",
"nav-frontend-ikoner-assets": "^3.0.1",
"nav-frontend-typografi": "^4.0.1",
"react": "^16.8.0 || ^17.0.0"
},
"defaultExport": "AlertStripe"
@@ -1,6 +1,6 @@
import * as PT from "prop-types";
import * as React from "react";
import * as classNames from "classnames";
import classNames from "classnames";
import { Normaltekst } from "nav-frontend-typografi";
import Ikon from "nav-frontend-ikoner-assets";
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "nav-frontend-chevron",
"version": "1.0.28",
"version": "1.0.30",
"main": "lib/chevron.js",
"types": "lib/chevron.d.ts",
"license": "MIT",
@@ -18,7 +18,7 @@
},
"peerDependencies": {
"classnames": "^2.2.5",
"nav-frontend-chevron-style": "^1.0.3",
"nav-frontend-chevron-style": "^1.0.4",
"prop-types": "^15.5.10",
"react": "^16.8.0 || ^17.0.0"
},
@@ -1,6 +1,6 @@
import * as PT from "prop-types";
import * as React from "react";
import * as classNames from "classnames";
import classNames from "classnames";
import "nav-frontend-chevron-style";
// export type ChevronType = 'høyre' | 'venstre' | 'ned' | 'opp';
+65 -85
View File
@@ -33,7 +33,6 @@ FARGER
@fokusFarge: @navBlaDarken60;
// kvarliggande farger for skjerm
@orangeFocus: #ffbd66;
@redError: #ba3a26;
@white: #fff;
@grayBackground: @navLysGra; // Deprecated
@@ -43,106 +42,87 @@ FARGER
@pinkErrorBg: #f3e3e3;
// Tilleggsfarger
// Går mot +#FFF respektive +#3E3832 i inkrement av 20%
@navGronnLighten20: mix(@navGronn, #fff, 80%);
@navGronnLighten40: mix(@navGronn, #fff, 60%);
@navGronnLighten60: mix(@navGronn, #fff, 40%);
@navGronnLighten80: mix(@navGronn, #fff, 20%);
// Kalkulering finnes i @navikt/ds-tokens/src/index.js
@navGronnDarken20: mix(@navGronn, #3e3832, 80%);
@navGronnDarken40: mix(@navGronn, #3e3832, 60%);
@navGronnDarken60: mix(@navGronn, #3e3832, 40%);
@navGronnDarken80: mix(@navGronn, #3e3832, 20%);
@navGronnLighten80: #ccf1d6;
@navGronnLighten60: #99dead;
@navGronnLighten40: #66c786;
@navGronnLighten20: #33aa5f;
@navLimeGronnLighten20: mix(@navLimeGronn, #fff, 80%);
@navLimeGronnLighten40: mix(@navLimeGronn, #fff, 60%);
@navLimeGronnLighten60: mix(@navLimeGronn, #fff, 40%);
@navLimeGronnLighten80: mix(@navLimeGronn, #fff, 20%);
@navGronnDarken20: #007c2e;
@navGronnDarken40: #006a23;
@navGronnDarken60: #005519;
@navGronnDarken80: #003b0f;
@navLimeGronnDarken20: mix(@navLimeGronn, #3e3832, 80%);
@navLimeGronnDarken40: mix(@navLimeGronn, #3e3832, 60%);
@navLimeGronnDarken60: mix(@navLimeGronn, #3e3832, 40%);
@navLimeGronnDarken80: mix(@navLimeGronn, #3e3832, 20%);
@navLimeGronnLighten80: #f9fccc;
@navLimeGronnLighten60: #ecf399;
@navLimeGronnLighten40: #d9e366;
@navLimeGronnLighten20: #c1cb33;
@navLysBlaLighten20: mix(@navLysBla, #fff, 80%);
@navLysBlaLighten40: mix(@navLysBla, #fff, 60%);
@navLysBlaLighten60: mix(@navLysBla, #fff, 40%);
@navLysBlaLighten80: mix(@navLysBla, #fff, 20%);
@navLimeGronnDarken20: #939e00;
@navLimeGronnDarken40: #7f8900;
@navLimeGronnDarken60: #666e00;
@navLimeGronnDarken80: #474e00;
@navLysBlaDarken20: mix(@navLysBla, #3e3832, 80%);
@navLysBlaDarken40: mix(@navLysBla, #3e3832, 60%);
@navLysBlaDarken60: mix(@navLysBla, #3e3832, 40%);
@navLysBlaDarken80: mix(@navLysBla, #3e3832, 20%);
@navLysBlaLighten80: #d8f9ff;
@navLysBlaLighten60: #b5f1ff;
@navLysBlaLighten40: #97e6ff;
@navLysBlaLighten20: #7cdaf8;
@navBlaLighten20: mix(@navBla, #fff, 80%);
@navBlaLighten40: mix(@navBla, #fff, 60%);
@navBlaLighten60: mix(@navBla, #fff, 40%);
@navBlaLighten80: mix(@navBla, #fff, 20%);
@navLysBlaDarken20: #4cadcd;
@navLysBlaDarken40: #368da8;
@navLysBlaDarken60: #236b7d;
@navLysBlaDarken80: #134852;
@navBlaDarken20: mix(@navBla, #3e3832, 80%);
@navBlaDarken40: mix(@navBla, #3e3832, 60%);
@navBlaDarken60: mix(@navBla, #3e3832, 40%);
@navBlaDarken80: mix(@navBla, #3e3832, 20%);
@navBlaLighten80: #cce1ff;
@navBlaLighten60: #99c3ff;
@navBlaLighten40: #66a5f4;
@navBlaLighten20: #3386e0;
@navDypBlaLighten20: mix(@navDypBla, #fff, 80%);
@navDypBlaLighten40: mix(@navDypBla, #fff, 60%);
@navDypBlaLighten60: mix(@navDypBla, #fff, 40%);
@navDypBlaLighten80: mix(@navDypBla, #fff, 20%);
@navBlaDarken20: #0056b4;
@navBlaDarken40: #00459c;
@navBlaDarken60: #00347d;
@navBlaDarken80: #002252;
@navDypBlaDarken20: mix(@navDypBla, #3e3832, 80%);
@navDypBlaDarken40: mix(@navDypBla, #3e3832, 60%);
@navDypBlaDarken60: mix(@navDypBla, #3e3832, 40%);
@navDypBlaDarken80: mix(@navDypBla, #3e3832, 20%);
@navDypBlaLighten80: #cce2f0;
@navDypBlaLighten60: #99c4dd;
@navDypBlaLighten40: #66a3c4;
@navDypBlaLighten20: #3380a5;
@navLillaLighten20: mix(@navLilla, #fff, 80%);
@navLillaLighten40: mix(@navLilla, #fff, 60%);
@navLillaLighten60: mix(@navLilla, #fff, 40%);
@navLillaLighten80: mix(@navLilla, #fff, 20%);
@navDypBlaDarken20: #005077;
@navDypBlaDarken40: #004367;
@navDypBlaDarken60: #003453;
@navDypBlaDarken80: #00243a;
@navLillaDarken20: mix(@navLilla, #3e3832, 80%);
@navLillaDarken40: mix(@navLilla, #3e3832, 60%);
@navLillaDarken60: mix(@navLilla, #3e3832, 40%);
@navLillaDarken80: mix(@navLilla, #3e3832, 20%);
@navLillaLighten80: #e0d8e9;
@navLillaLighten60: #c0b2d2;
@navLillaLighten40: #a18dbb;
@navLillaLighten20: #8269a2;
@navRodLighten20: mix(@navRod, #fff, 80%);
@navRodLighten40: mix(@navRod, #fff, 60%);
@navRodLighten60: mix(@navRod, #fff, 40%);
@navRodLighten80: mix(@navRod, #fff, 20%);
@navLillaDarken20: #523874;
@navLillaDarken40: #412b5d;
@navLillaDarken60: #301f46;
@navLillaDarken80: #1f142f;
@navRodDarken20: mix(@navRod, #3e3832, 80%);
@navRodDarken40: mix(@navRod, #3e3832, 60%);
@navRodDarken60: mix(@navRod, #3e3832, 40%);
@navRodDarken80: mix(@navRod, #3e3832, 20%);
@redErrorLighten80: #f9d2cc;
@redErrorLighten60: #efa89d;
@redErrorLighten40: #e18071;
@redErrorLighten20: #d05c4a;
@navOransjeLighten20: mix(@navOransje, #fff, 80%);
@navOransjeLighten40: mix(@navOransje, #fff, 60%);
@navOransjeLighten60: mix(@navOransje, #fff, 40%);
@navOransjeLighten80: mix(@navOransje, #fff, 20%);
@redErrorDarken20: #a32a17;
@redErrorDarken40: #881d0c;
@redErrorDarken60: #6a1204;
@redErrorDarken80: #480900;
@navOransjeDarken20: mix(@navOransje, #3e3832, 80%);
@navOransjeDarken40: mix(@navOransje, #3e3832, 60%);
@navOransjeDarken60: mix(@navOransje, #3e3832, 40%);
@navOransjeDarken80: mix(@navOransje, #3e3832, 20%);
@navOransjeLighten80: #ffeccc;
@navOransjeLighten60: #ffd799;
@navOransjeLighten40: #ffc166;
@navOransjeLighten20: #ffaa33;
@orangeFocusLighten20: mix(@orangeFocus, #fff, 80%);
@orangeFocusLighten40: mix(@orangeFocus, #fff, 60%);
@orangeFocusLighten60: mix(@orangeFocus, #fff, 40%);
@orangeFocusLighten80: mix(@orangeFocus, #fff, 20%);
@orangeFocusDarken20: mix(@orangeFocus, #3e3832, 80%);
@orangeFocusDarken40: mix(@orangeFocus, #3e3832, 60%);
@orangeFocusDarken60: mix(@orangeFocus, #3e3832, 40%);
@orangeFocusDarken80: mix(@orangeFocus, #3e3832, 20%);
@redErrorLighten20: mix(@redError, #fff, 80%);
@redErrorLighten40: mix(@redError, #fff, 60%);
@redErrorLighten60: mix(@redError, #fff, 40%);
@redErrorLighten80: mix(@redError, #fff, 20%);
@redErrorDarken20: mix(@redError, #3e3832, 80%);
@redErrorDarken40: mix(@redError, #3e3832, 60%);
@redErrorDarken60: mix(@redError, #3e3832, 40%);
@redErrorDarken80: mix(@redError, #3e3832, 20%);
@navOransjeDarken20: #d47b00;
@navOransjeDarken40: #a86400;
@navOransjeDarken60: #7d4c00;
@navOransjeDarken80: #523300;
/*
---------------
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "nav-frontend-core",
"version": "5.1.1",
"version": "6.0.1",
"description": "",
"main": "less/core.less",
"author": "NAV",
@@ -1,6 +1,6 @@
{
"name": "nav-frontend-ekspanderbartpanel-style",
"version": "1.1.2",
"version": "2.0.1",
"main": "src/index.less",
"license": "MIT",
"files": [
@@ -15,15 +15,15 @@
"url": "git+https://github.com/navikt/nav-frontend-moduler.git"
},
"peerDependencies": {
"nav-frontend-chevron-style": "^1.0.3",
"nav-frontend-core": "^5.0.11",
"nav-frontend-paneler-style": "^1.0.0",
"nav-frontend-typografi-style": "^1.0.33"
"nav-frontend-chevron-style": "^1.0.4",
"nav-frontend-core": "^6.0.0",
"nav-frontend-paneler-style": "^2.0.0",
"nav-frontend-typografi-style": "^2.0.0"
},
"devDependencies": {
"nav-frontend-chevron-style": "^1.0.4",
"nav-frontend-core": "^5.1.1",
"nav-frontend-paneler-style": "^1.1.1",
"nav-frontend-typografi-style": "^1.1.1"
"nav-frontend-core": "^6.0.1",
"nav-frontend-paneler-style": "^2.0.1",
"nav-frontend-typografi-style": "^2.0.1"
}
}
@@ -1,6 +1,6 @@
{
"name": "nav-frontend-ekspanderbartpanel",
"version": "3.1.3",
"version": "4.0.1",
"main": "lib/index.js",
"license": "MIT",
"types": "lib/index.d.ts",
@@ -19,8 +19,8 @@
"peerDependencies": {
"@types/react-collapse": "^5.0.0",
"classnames": "^2.2.5",
"nav-frontend-ekspanderbartpanel-style": "^1.0.38",
"nav-frontend-js-utils": "^1.0.16",
"nav-frontend-ekspanderbartpanel-style": "^2.0.0",
"nav-frontend-js-utils": "^1.0.19",
"react": "^16.8.0 || ^17.0.0",
"react-collapse": "^5.0.0"
},
@@ -29,8 +29,8 @@
"@types/react": "15.0.23 || ^16.0.0",
"@types/react-collapse": "^5.0.0",
"classnames": "^2.2.5",
"nav-frontend-ekspanderbartpanel-style": "^1.1.2",
"nav-frontend-js-utils": "^1.0.18",
"nav-frontend-ekspanderbartpanel-style": "^2.0.1",
"nav-frontend-js-utils": "^1.0.19",
"react": "^16.8.0 || ^17.0.0",
"react-collapse": "^5.0.0"
},
@@ -1,5 +1,5 @@
import * as React from "react";
import * as classnames from "classnames";
import classnames from "classnames";
import {
UnmountClosed,
Collapse,
@@ -1,6 +1,6 @@
{
"name": "nav-frontend-etiketter-style",
"version": "1.1.1",
"version": "2.0.1",
"main": "src/index.less",
"license": "MIT",
"files": [
@@ -14,9 +14,9 @@
"url": "git+https://github.com/navikt/nav-frontend-moduler.git"
},
"devDependencies": {
"nav-frontend-core": "^5.1.1"
"nav-frontend-core": "^6.0.1"
},
"peerDependencies": {
"nav-frontend-core": "^5.0.11"
"nav-frontend-core": "^6.0.0"
}
}
@@ -5,22 +5,22 @@
.etikett();
&--advarsel {
background-color: @redErrorLighten60;
background-color: @redErrorLighten80;
border: 1px solid @redError;
}
&--suksess {
background-color: @navGronnLighten60;
background-color: @navGronnLighten80;
border: 1px solid @navGronn;
}
&--fokus {
background-color: @navOransjeLighten60;
background-color: @navOransjeLighten80;
border: 1px solid @navOransjeDarken20;
}
&--info {
background-color: @navLysBlaLighten60;
background-color: @navLysBlaLighten80;
border: 1px solid @navLysBlaDarken40;
}
+7 -7
View File
@@ -1,6 +1,6 @@
{
"name": "nav-frontend-etiketter",
"version": "2.1.1",
"version": "3.0.1",
"main": "lib/index.js",
"types": "lib/index.d.ts",
"license": "MIT",
@@ -18,17 +18,17 @@
},
"devDependencies": {
"classnames": "^2.2.5",
"nav-frontend-core": "^5.1.1",
"nav-frontend-etiketter-style": "^1.1.1",
"nav-frontend-typografi": "^3.1.1",
"nav-frontend-core": "^6.0.1",
"nav-frontend-etiketter-style": "^2.0.1",
"nav-frontend-typografi": "^4.0.1",
"prop-types": "^15.5.10",
"react": "^16.8.0 || ^17.0.0"
},
"peerDependencies": {
"classnames": "^2.2.5",
"nav-frontend-core": "^5.0.11",
"nav-frontend-etiketter-style": "^1.0.18",
"nav-frontend-typografi": "^3.0.2",
"nav-frontend-core": "^6.0.0",
"nav-frontend-etiketter-style": "^2.0.0",
"nav-frontend-typografi": "^4.0.0",
"prop-types": "^15.5.10",
"react": "^16.8.0 || ^17.0.0"
},
@@ -1,6 +1,6 @@
import * as PT from "prop-types";
import * as React from "react";
import * as classNames from "classnames";
import classNames from "classnames";
import TypografiBase from "nav-frontend-typografi";
import "nav-frontend-etiketter-style";
@@ -13,41 +13,19 @@ export default {
} as Meta;
export const All = () => (
<div
style={{
display: "grid",
gridAutoRows: "auto",
rowGap: "2rem",
gridAutoColumns: "fit-content",
maxWidth: "50vw",
}}
>
<div
style={{
display: "flex",
justifyContent: "space-evenly",
}}
>
<EtikettInfo> Info</EtikettInfo>
<div>
<h1>Etikett</h1>
<div style={{ display: "flex", gap: 8 }}>
<EtikettInfo>Info</EtikettInfo>
<EtikettSuksess>Suksess</EtikettSuksess>
<EtikettFokus>Fokus</EtikettFokus>
<EtikettAdvarsel>Advarsel</EtikettAdvarsel>
</div>
<div
style={{
display: "flex",
justifyContent: "space-evenly",
}}
>
<EtikettInfo mini> Info</EtikettInfo>
<h2>mini</h2>
<div style={{ display: "flex", gap: 8 }}>
<EtikettInfo mini>Info</EtikettInfo>
<EtikettSuksess mini>Suksess</EtikettSuksess>
<EtikettFokus mini>Fokus</EtikettFokus>
<EtikettAdvarsel mini>Advarsel</EtikettAdvarsel>
</div>
</div>
+4 -4
View File
@@ -1,6 +1,6 @@
{
"name": "nav-frontend-grid",
"version": "1.1.1",
"version": "2.0.1",
"main": "lib/grid.js",
"types": "lib/grid.d.ts",
"license": "MIT",
@@ -18,14 +18,14 @@
},
"peerDependencies": {
"classnames": "^2.2.5",
"nav-frontend-core": "^5.0.11",
"nav-frontend-grid-style": "^1.0.0",
"nav-frontend-core": "^6.0.0",
"nav-frontend-grid-style": "^1.0.2",
"prop-types": "^15.5.10",
"react": "^16.8.0 || ^17.0.0"
},
"devDependencies": {
"classnames": "^2.2.5",
"nav-frontend-core": "^5.1.1",
"nav-frontend-core": "^6.0.1",
"nav-frontend-grid-style": "^1.0.2",
"prop-types": "^15.5.10",
"react": "^16.8.0 || ^17.0.0"
+1 -1
View File
@@ -1,6 +1,6 @@
import * as PT from "prop-types";
import * as React from "react";
import * as classNames from "classnames";
import classNames from "classnames";
import "nav-frontend-grid-style";
const cls = (className, xs, sm, md, lg) =>
+1 -1
View File
@@ -1,6 +1,6 @@
import * as PT from "prop-types";
import * as React from "react";
import * as classNames from "classnames";
import classNames from "classnames";
import "nav-frontend-grid-style";
const cls = (fluid, className) =>
+1 -1
View File
@@ -1,6 +1,6 @@
import * as PT from "prop-types";
import * as React from "react";
import * as classNames from "classnames";
import classNames from "classnames";
import "nav-frontend-grid-style";
const cls = (className) => classNames("row", className, {});
@@ -1,6 +1,6 @@
{
"name": "nav-frontend-hjelpetekst-style",
"version": "2.1.1",
"version": "3.0.1",
"main": "src/hjelpetekst-style.less",
"license": "MIT",
"files": [
@@ -15,11 +15,11 @@
"url": "git+https://github.com/navikt/nav-frontend-moduler.git"
},
"devDependencies": {
"nav-frontend-core": "^5.1.1",
"nav-frontend-typografi-style": "^1.1.1"
"nav-frontend-core": "^6.0.1",
"nav-frontend-typografi-style": "^2.0.1"
},
"peerDependencies": {
"nav-frontend-core": "^5.0.11",
"nav-frontend-typografi-style": "^1.0.33"
"nav-frontend-core": "^6.0.0",
"nav-frontend-typografi-style": "^2.0.0"
}
}
@@ -1,6 +1,6 @@
{
"name": "nav-frontend-hjelpetekst",
"version": "2.1.3",
"version": "3.0.2",
"main": "lib/hjelpetekst.js",
"types": "lib/hjelpetekst.d.ts",
"license": "MIT",
@@ -18,10 +18,10 @@
},
"peerDependencies": {
"classnames": "^2.2.5",
"nav-frontend-hjelpetekst-style": "^2.0.40",
"nav-frontend-ikoner-assets": "^2.0.9",
"nav-frontend-js-utils": "^1.0.16",
"nav-frontend-popover": "^1.0.2",
"nav-frontend-hjelpetekst-style": "^3.0.0",
"nav-frontend-ikoner-assets": "^3.0.0",
"nav-frontend-js-utils": "^1.0.19",
"nav-frontend-popover": "^2.0.0",
"prop-types": "^15.5.10",
"react": "^16.8.0 || ^17.0.0"
},
@@ -29,10 +29,10 @@
"@types/classnames": "^2.2.3",
"@types/react": "15.0.23 || ^16.0.0",
"classnames": "^2.2.5",
"nav-frontend-hjelpetekst-style": "^2.1.1",
"nav-frontend-ikoner-assets": "^2.0.10",
"nav-frontend-js-utils": "^1.0.18",
"nav-frontend-popover": "^1.1.3",
"nav-frontend-hjelpetekst-style": "^3.0.1",
"nav-frontend-ikoner-assets": "^3.0.1",
"nav-frontend-js-utils": "^1.0.19",
"nav-frontend-popover": "^2.0.2",
"prop-types": "^15.5.10",
"react": "^16.8.0 || ^17.0.0"
},
@@ -1,5 +1,5 @@
import * as React from "react";
import * as classnames from "classnames";
import classnames from "classnames";
import { guid, keyCodes } from "nav-frontend-js-utils";
import Ikon from "nav-frontend-ikoner-assets";
import Popover, {
@@ -3,8 +3,8 @@
<g transform="translate(-16.000000, -20.000000)">
<g transform="translate(16.000000, 20.000000)">
<path d="M12.2047909,-0.004 L11.990873,-0.00191299528 C8.77688569,0.054436132 5.75177235,1.35359657 3.47380671,3.65660627 C1.17914502,5.97631201 -0.0532312621,9.01290387 0.00207436285,12.2081081 C0.116859622,18.8207825 5.29784883,24.0007282 11.7967815,24.0007282 L12.0086125,23.9986412 C18.7350287,23.8828125 24.1142833,18.4044251 23.9984546,11.7896636 C23.8836693,5.17698921 18.7026801,-0.004 12.2047909,-0.004 Z" fill="#FFA733" fill-rule="nonzero"></path>
<path d="M12.0271658,18.9998332 C12.0181663,18.9998332 12.0091668,18.9998332 12.0001673,18.9998332 C11.1827127,18.9998332 10.5137499,18.3458695 10.5002507,17.5269151 C10.4852515,16.6989611 11.1452148,16.0149992 11.9731688,16.0014999 C11.9821683,16.0014999 11.9911678,16 12.0001673,16 C12.8176218,16 13.4850847,16.6554636 13.5000839,17.474418 C13.515083,18.302372 12.8536198,18.984834 12.0271658,18.9998332 Z" fill="#3E3832" fill-rule="evenodd"></path>
<path d="M12,5 C12.5522847,5 13,5.44771525 13,6 L13,13 C13,13.5522847 12.5522847,14 12,14 C11.4477153,14 11,13.5522847 11,13 L11,6 C11,5.44771525 11.4477153,5 12,5 Z" fill="#3E3832" fill-rule="nonzero"></path>
<path d="M12.0271658,18.9998332 C12.0181663,18.9998332 12.0091668,18.9998332 12.0001673,18.9998332 C11.1827127,18.9998332 10.5137499,18.3458695 10.5002507,17.5269151 C10.4852515,16.6989611 11.1452148,16.0149992 11.9731688,16.0014999 C11.9821683,16.0014999 11.9911678,16 12.0001673,16 C12.8176218,16 13.4850847,16.6554636 13.5000839,17.474418 C13.515083,18.302372 12.8536198,18.984834 12.0271658,18.9998332 Z" fill="#262626" fill-rule="evenodd"></path>
<path d="M12,5 C12.5522847,5 13,5.44771525 13,6 L13,13 C13,13.5522847 12.5522847,14 12,14 C11.4477153,14 11,13.5522847 11,13 L11,6 C11,5.44771525 11.4477153,5 12,5 Z" fill="#262626" fill-rule="nonzero"></path>
</g>
</g>
</g>

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

@@ -1,6 +1,6 @@
{
"name": "nav-frontend-ikoner-assets",
"version": "2.0.10",
"version": "3.0.1",
"license": "SEE LICENSE IN LICENSE",
"files": [
"/src",
@@ -101,11 +101,11 @@ export default class Icon extends React.Component {
/>
<path
d="M12.027 19H12A1.499 1.499 0 0 1 11.973 16L12 16a1.501 1.501 0 0 1 .027 3z"
fill="#3E3832"
fill="#262626"
/>
<path
d="M12 5a1 1 0 0 1 1 1v7a1 1 0 0 1-2 0V6a1 1 0 0 1 1-1z"
fill="#3E3832"
fill="#262626"
fillRule="nonzero"
/>
</g>
@@ -1,6 +1,6 @@
{
"name": "nav-frontend-ikonknapper",
"version": "1.1.3",
"version": "2.0.1",
"main": "lib/index.js",
"types": "lib/index.d.ts",
"license": "MIT",
@@ -17,15 +17,15 @@
"watch": "tsc --watch -p tsconfig.json"
},
"peerDependencies": {
"nav-frontend-chevron": "^1.0.27",
"nav-frontend-ikoner-assets": "^2.0.9",
"nav-frontend-knapper": "^2.0.29",
"nav-frontend-chevron": "^1.0.29",
"nav-frontend-ikoner-assets": "^3.0.0",
"nav-frontend-knapper": "^3.0.0",
"react": "^16.8.0 || ^17.0.0"
},
"devDependencies": {
"nav-frontend-chevron": "^1.0.28",
"nav-frontend-ikoner-assets": "^2.0.10",
"nav-frontend-knapper": "^2.1.3",
"nav-frontend-chevron": "^1.0.30",
"nav-frontend-ikoner-assets": "^3.0.1",
"nav-frontend-knapper": "^3.0.1",
"react": "^16.8.0 || ^17.0.0"
}
}
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "nav-frontend-js-utils",
"version": "1.0.18",
"version": "1.0.19",
"main": "lib/index.js",
"types": "lib/index.d.ts",
"license": "MIT",
@@ -1,6 +1,6 @@
import * as PT from "prop-types";
import * as React from "react";
import * as _throttle from "lodash.throttle";
import throttle from "lodash.throttle";
export interface EventThrottlerProps {
children: React.ReactNode | React.ReactChild | React.ReactChildren;
@@ -13,7 +13,7 @@ export class EventThrottler extends React.Component<EventThrottlerProps> {
private throttled!: () => void;
componentDidMount() {
this.throttled = _throttle(this.props.callback, this.props.delay, {
this.throttled = throttle(this.props.callback, this.props.delay, {
leading: false,
});
window.addEventListener(this.props.event, this.throttled);
@@ -1,6 +1,6 @@
{
"name": "nav-frontend-knapper-style",
"version": "1.1.2",
"version": "2.0.1",
"main": "src/index.less",
"license": "MIT",
"files": [
@@ -15,11 +15,11 @@
"url": "git+https://github.com/navikt/nav-frontend-moduler.git"
},
"devDependencies": {
"nav-frontend-core": "^5.1.1",
"nav-frontend-typografi-style": "^1.1.1"
"nav-frontend-core": "^6.0.1",
"nav-frontend-typografi-style": "^2.0.1"
},
"peerDependencies": {
"nav-frontend-core": "^5.0.11",
"nav-frontend-typografi-style": "^1.0.33"
"nav-frontend-core": "^6.0.0",
"nav-frontend-typografi-style": "^2.0.0"
}
}
+5 -5
View File
@@ -1,6 +1,6 @@
{
"name": "nav-frontend-knapper",
"version": "2.1.3",
"version": "3.0.1",
"main": "lib/index.js",
"types": "lib/index.d.ts",
"license": "MIT",
@@ -18,8 +18,8 @@
},
"peerDependencies": {
"classnames": "^2.2.5",
"nav-frontend-js-utils": "^1.0.16",
"nav-frontend-knapper-style": "^1.0.15",
"nav-frontend-js-utils": "^1.0.19",
"nav-frontend-knapper-style": "^2.0.0",
"prop-types": "^15.5.10",
"react": "^16.8.0 || ^17.0.0"
},
@@ -27,8 +27,8 @@
"@types/classnames": "^2.2.3",
"@types/react": "15.0.23 || ^16.0.0",
"classnames": "^2.2.5",
"nav-frontend-js-utils": "^1.0.18",
"nav-frontend-knapper-style": "^1.1.2",
"nav-frontend-js-utils": "^1.0.19",
"nav-frontend-knapper-style": "^2.0.1",
"prop-types": "^15.5.10",
"react": "^16.8.0 || ^17.0.0"
},
+1 -1
View File
@@ -1,6 +1,6 @@
import * as PT from "prop-types";
import * as React from "react";
import * as classNames from "classnames";
import classNames from "classnames";
import { omit } from "nav-frontend-js-utils";
import "nav-frontend-knapper-style";
@@ -1,6 +1,6 @@
{
"name": "nav-frontend-lenkepanel-style",
"version": "1.1.1",
"version": "2.0.1",
"main": "src/index.less",
"license": "MIT",
"files": [
@@ -15,13 +15,13 @@
"url": "git+https://github.com/navikt/nav-frontend-moduler.git"
},
"peerDependencies": {
"nav-frontend-chevron-style": "^1.0.3",
"nav-frontend-core": "^5.0.11",
"nav-frontend-paneler-style": "^1.0.0"
"nav-frontend-chevron-style": "^1.0.4",
"nav-frontend-core": "^6.0.0",
"nav-frontend-paneler-style": "^2.0.0"
},
"devDependencies": {
"nav-frontend-chevron-style": "^1.0.4",
"nav-frontend-core": "^5.1.1",
"nav-frontend-paneler-style": "^1.1.1"
"nav-frontend-core": "^6.0.1",
"nav-frontend-paneler-style": "^2.0.1"
}
}
@@ -1,6 +1,6 @@
{
"name": "nav-frontend-lenkepanel",
"version": "1.1.1",
"version": "2.0.1",
"main": "lib/index.js",
"types": "lib/index.d.ts",
"license": "MIT",
@@ -18,8 +18,8 @@
},
"peerDependencies": {
"classnames": "^2.2.5",
"nav-frontend-lenkepanel-style": "^1.0.0",
"nav-frontend-typografi": "^3.0.2",
"nav-frontend-lenkepanel-style": "^2.0.0",
"nav-frontend-typografi": "^4.0.0",
"prop-types": "^15.5.10",
"react": "^16.8.0 || ^17.0.0"
},
@@ -27,8 +27,8 @@
"@types/classnames": "^2.2.3",
"@types/react": "15.0.23 || ^16.0.0",
"classnames": "^2.2.5",
"nav-frontend-lenkepanel-style": "^1.1.1",
"nav-frontend-typografi": "^3.1.1",
"nav-frontend-lenkepanel-style": "^2.0.1",
"nav-frontend-typografi": "^4.0.1",
"prop-types": "^15.5.10",
"react": "^16.8.0 || ^17.0.0"
},
@@ -1,6 +1,6 @@
import * as PT from "prop-types";
import * as React from "react";
import * as classNames from "classnames";
import classNames from "classnames";
import "nav-frontend-lenkepanel-style";
const cls = (className, border) =>
@@ -1,6 +1,6 @@
{
"name": "nav-frontend-lenker-style",
"version": "1.1.1",
"version": "2.0.1",
"main": "src/lenker-style.less",
"license": "MIT",
"files": [
@@ -15,9 +15,9 @@
"url": "git+https://github.com/navikt/nav-frontend-moduler.git"
},
"devDependencies": {
"nav-frontend-core": "^5.1.1"
"nav-frontend-core": "^6.0.1"
},
"peerDependencies": {
"nav-frontend-core": "^5.0.11"
"nav-frontend-core": "^6.0.0"
}
}
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "nav-frontend-lenker",
"version": "1.1.1",
"version": "2.0.1",
"main": "lib/lenke.js",
"types": "lib/lenke.d.ts",
"license": "MIT",
@@ -18,13 +18,13 @@
},
"peerDependencies": {
"classnames": "^2.2.5",
"nav-frontend-lenker-style": "^1.0.0",
"nav-frontend-lenker-style": "^2.0.0",
"prop-types": "^15.5.10",
"react": "^16.8.0 || ^17.0.0"
},
"devDependencies": {
"classnames": "^2.2.5",
"nav-frontend-lenker-style": "^1.1.1",
"nav-frontend-lenker-style": "^2.0.1",
"prop-types": "^15.5.10",
"react": "^16.8.0 || ^17.0.0"
},
Loaded 100 of 185 files, more files were not shown because too many files have changed in this diff. Show more