@navikt/ds-react 0.15.3 → 0.16.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/modal/Modal.js +6 -2
- package/cjs/page-header/PageHeader.js +1 -1
- package/esm/modal/Modal.d.ts +3 -0
- package/esm/modal/Modal.js +6 -2
- package/esm/modal/Modal.js.map +1 -1
- package/esm/page-header/PageHeader.js +1 -1
- package/esm/page-header/PageHeader.js.map +1 -1
- package/esm/typography/Heading.d.ts +1 -1
- package/package.json +3 -3
- package/src/modal/Modal.tsx +11 -0
- package/src/page-header/PageHeader.tsx +1 -5
- package/src/typography/Heading.tsx +1 -1
- package/src/typography/{stories/typography.stories.tsx → typography.stories.tsx} +4 -5
- package/src/typography/stories/index.css +0 -3
- package/src/typography/stories/typography.stories.mdx +0 -83
package/cjs/modal/Modal.js
CHANGED
|
@@ -41,7 +41,7 @@ const ds_icons_1 = require("@navikt/ds-icons");
|
|
|
41
41
|
const __1 = require("..");
|
|
42
42
|
const ModalContent_1 = __importDefault(require("./ModalContent"));
|
|
43
43
|
const Modal = (0, react_1.forwardRef)((_a, ref) => {
|
|
44
|
-
var { children, open, onClose, className, shouldCloseOnOverlayClick = true, closeButton = true } = _a, rest = __rest(_a, ["children", "open", "onClose", "className", "shouldCloseOnOverlayClick", "closeButton"]);
|
|
44
|
+
var { children, open, onClose, className, shouldCloseOnOverlayClick = true, closeButton = true, "aria-describedby": ariaDescribedBy, "aria-labelledby": ariaLabelledBy, "aria-modal": ariaModal } = _a, rest = __rest(_a, ["children", "open", "onClose", "className", "shouldCloseOnOverlayClick", "closeButton", "aria-describedby", "aria-labelledby", "aria-modal"]);
|
|
45
45
|
const modalRef = (0, react_1.useRef)(null);
|
|
46
46
|
const mergedRef = (0, react_merge_refs_1.default)([modalRef, ref]);
|
|
47
47
|
const buttonRef = (0, react_1.useRef)(null);
|
|
@@ -53,7 +53,11 @@ const Modal = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
53
53
|
buttonRef.current.focus();
|
|
54
54
|
}
|
|
55
55
|
};
|
|
56
|
-
return (react_1.default.createElement(react_modal_1.default, Object.assign({}, rest, { isOpen: open, ref: mergedRef, className: (0, classnames_1.default)("navds-modal", className), overlayClassName: "navds-modal__overlay", shouldCloseOnOverlayClick: shouldCloseOnOverlayClick, onRequestClose: (e) => onModalCloseRequest(e)
|
|
56
|
+
return (react_1.default.createElement(react_modal_1.default, Object.assign({}, rest, { isOpen: open, ref: mergedRef, className: (0, classnames_1.default)("navds-modal", className), overlayClassName: "navds-modal__overlay", shouldCloseOnOverlayClick: shouldCloseOnOverlayClick, onRequestClose: (e) => onModalCloseRequest(e), aria: {
|
|
57
|
+
describedby: ariaDescribedBy,
|
|
58
|
+
labelledby: ariaLabelledBy,
|
|
59
|
+
modal: ariaModal,
|
|
60
|
+
} }),
|
|
57
61
|
children,
|
|
58
62
|
closeButton && (react_1.default.createElement(__1.Button, { className: (0, classnames_1.default)("navds-modal__button", {
|
|
59
63
|
"navds-modal__button--shake": shouldCloseOnOverlayClick,
|
|
@@ -41,7 +41,7 @@ const PageHeader = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
41
41
|
return (react_1.default.createElement("div", Object.assign({ ref: ref, className: (0, classnames_1.default)("navds-page-header", className, `navds-page-header--${variant}`, `navds-page-header--${align}`) }, rest),
|
|
42
42
|
illustration && (react_1.default.createElement("div", { className: "navds-page-header__illustration" }, illustration)),
|
|
43
43
|
react_1.default.createElement("div", { className: "navds-page-header__wrapper" },
|
|
44
|
-
react_1.default.createElement(__1.Heading, { className: "navds-page-header__title", size: "
|
|
44
|
+
react_1.default.createElement(__1.Heading, { className: "navds-page-header__title", size: "xlarge", level: "1" }, children),
|
|
45
45
|
description && (react_1.default.createElement(__1.BodyShort, { className: "navds-page-header__description" }, description)))));
|
|
46
46
|
});
|
|
47
47
|
exports.default = PageHeader;
|
package/esm/modal/Modal.d.ts
CHANGED
|
@@ -28,6 +28,9 @@ export interface ModalProps {
|
|
|
28
28
|
* @default true
|
|
29
29
|
*/
|
|
30
30
|
closeButton?: boolean;
|
|
31
|
+
"aria-labelledby"?: string;
|
|
32
|
+
"aria-describedby"?: string;
|
|
33
|
+
"aria-modal"?: boolean;
|
|
31
34
|
}
|
|
32
35
|
interface ModalComponent extends ModalLifecycle, React.ForwardRefExoticComponent<ModalProps & React.RefAttributes<ReactModal>> {
|
|
33
36
|
Content: ModalContentType;
|
package/esm/modal/Modal.js
CHANGED
|
@@ -17,7 +17,7 @@ import { Close } from "@navikt/ds-icons";
|
|
|
17
17
|
import { Button } from "..";
|
|
18
18
|
import ModalContent from "./ModalContent";
|
|
19
19
|
const Modal = forwardRef((_a, ref) => {
|
|
20
|
-
var { children, open, onClose, className, shouldCloseOnOverlayClick = true, closeButton = true } = _a, rest = __rest(_a, ["children", "open", "onClose", "className", "shouldCloseOnOverlayClick", "closeButton"]);
|
|
20
|
+
var { children, open, onClose, className, shouldCloseOnOverlayClick = true, closeButton = true, "aria-describedby": ariaDescribedBy, "aria-labelledby": ariaLabelledBy, "aria-modal": ariaModal } = _a, rest = __rest(_a, ["children", "open", "onClose", "className", "shouldCloseOnOverlayClick", "closeButton", "aria-describedby", "aria-labelledby", "aria-modal"]);
|
|
21
21
|
const modalRef = useRef(null);
|
|
22
22
|
const mergedRef = mergeRefs([modalRef, ref]);
|
|
23
23
|
const buttonRef = useRef(null);
|
|
@@ -29,7 +29,11 @@ const Modal = forwardRef((_a, ref) => {
|
|
|
29
29
|
buttonRef.current.focus();
|
|
30
30
|
}
|
|
31
31
|
};
|
|
32
|
-
return (React.createElement(ReactModal, Object.assign({}, rest, { isOpen: open, ref: mergedRef, className: cl("navds-modal", className), overlayClassName: "navds-modal__overlay", shouldCloseOnOverlayClick: shouldCloseOnOverlayClick, onRequestClose: (e) => onModalCloseRequest(e)
|
|
32
|
+
return (React.createElement(ReactModal, Object.assign({}, rest, { isOpen: open, ref: mergedRef, className: cl("navds-modal", className), overlayClassName: "navds-modal__overlay", shouldCloseOnOverlayClick: shouldCloseOnOverlayClick, onRequestClose: (e) => onModalCloseRequest(e), aria: {
|
|
33
|
+
describedby: ariaDescribedBy,
|
|
34
|
+
labelledby: ariaLabelledBy,
|
|
35
|
+
modal: ariaModal,
|
|
36
|
+
} }),
|
|
33
37
|
children,
|
|
34
38
|
closeButton && (React.createElement(Button, { className: cl("navds-modal__button", {
|
|
35
39
|
"navds-modal__button--shake": shouldCloseOnOverlayClick,
|
package/esm/modal/Modal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../src/modal/Modal.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,YAAkC,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../src/modal/Modal.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,YAAkC,MAAM,gBAAgB,CAAC;AA8ChE,MAAM,KAAK,GAAG,UAAU,CACtB,CACE,EAWC,EACD,GAAG,EACH,EAAE;QAbF,EACE,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,SAAS,EACT,yBAAyB,GAAG,IAAI,EAChC,WAAW,GAAG,IAAI,EAClB,kBAAkB,EAAE,eAAe,EACnC,iBAAiB,EAAE,cAAc,EACjC,YAAY,EAAE,SAAS,OAExB,EADI,IAAI,cAVT,6IAWC,CADQ;IAIT,MAAM,QAAQ,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IAElD,MAAM,mBAAmB,GAAG,CAAC,CAAC,EAAE,EAAE;QAChC,IAAI,yBAAyB,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE;YACrD,OAAO,EAAE,CAAC;SACX;aAAM,IAAI,SAAS,CAAC,OAAO,EAAE;YAC5B,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;SAC3B;IACH,CAAC,CAAC;IAEF,OAAO,CACL,oBAAC,UAAU,oBACL,IAAI,IACR,MAAM,EAAE,IAAI,EACZ,GAAG,EAAE,SAAS,EACd,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,EACvC,gBAAgB,EAAC,sBAAsB,EACvC,yBAAyB,EAAE,yBAAyB,EACpD,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAC7C,IAAI,EAAE;YACJ,WAAW,EAAE,eAAe;YAC5B,UAAU,EAAE,cAAc;YAC1B,KAAK,EAAE,SAAS;SACjB;QAEA,QAAQ;QACR,WAAW,IAAI,CACd,oBAAC,MAAM,IACL,SAAS,EAAE,EAAE,CAAC,qBAAqB,EAAE;gBACnC,4BAA4B,EAAE,yBAAyB;aACxD,CAAC,EACF,IAAI,EAAC,OAAO,EACZ,OAAO,EAAC,UAAU,EAClB,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,OAAO;YAEhB,oBAAC,KAAK,IAAC,KAAK,EAAC,iBAAiB,GAAG,CAC1B,CACV,CACU,CACd,CAAC;AACJ,CAAC,CACgB,CAAC;AAEpB,KAAK,CAAC,aAAa,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AACrE,KAAK,CAAC,OAAO,GAAG,YAAY,CAAC;AAE7B,eAAe,KAAK,CAAC"}
|
|
@@ -17,7 +17,7 @@ const PageHeader = forwardRef((_a, ref) => {
|
|
|
17
17
|
return (React.createElement("div", Object.assign({ ref: ref, className: cl("navds-page-header", className, `navds-page-header--${variant}`, `navds-page-header--${align}`) }, rest),
|
|
18
18
|
illustration && (React.createElement("div", { className: "navds-page-header__illustration" }, illustration)),
|
|
19
19
|
React.createElement("div", { className: "navds-page-header__wrapper" },
|
|
20
|
-
React.createElement(Heading, { className: "navds-page-header__title", size: "
|
|
20
|
+
React.createElement(Heading, { className: "navds-page-header__title", size: "xlarge", level: "1" }, children),
|
|
21
21
|
description && (React.createElement(BodyShort, { className: "navds-page-header__description" }, description)))));
|
|
22
22
|
});
|
|
23
23
|
export default PageHeader;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageHeader.js","sourceRoot":"","sources":["../../src/page-header/PageHeader.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAkB,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AA2BxC,MAAM,UAAU,GAAG,UAAU,CAC3B,CACE,EAQC,EACD,GAAG,EACH,EAAE;QAVF,EACE,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,WAAW,EACX,OAAO,GAAG,OAAO,EACjB,KAAK,GAAG,MAAM,OAEf,EADI,IAAI,cAPT,4EAQC,CADQ;IAIT,OAAO,CACL,2CACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,mBAAmB,EACnB,SAAS,EACT,sBAAsB,OAAO,EAAE,EAC/B,sBAAsB,KAAK,EAAE,CAC9B,IACG,IAAI;QAEP,YAAY,IAAI,CACf,6BAAK,SAAS,EAAC,iCAAiC,IAAE,YAAY,CAAO,CACtE;QACD,6BAAK,SAAS,EAAC,4BAA4B;YACzC,oBAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"PageHeader.js","sourceRoot":"","sources":["../../src/page-header/PageHeader.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAkB,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AA2BxC,MAAM,UAAU,GAAG,UAAU,CAC3B,CACE,EAQC,EACD,GAAG,EACH,EAAE;QAVF,EACE,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,WAAW,EACX,OAAO,GAAG,OAAO,EACjB,KAAK,GAAG,MAAM,OAEf,EADI,IAAI,cAPT,4EAQC,CADQ;IAIT,OAAO,CACL,2CACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,mBAAmB,EACnB,SAAS,EACT,sBAAsB,OAAO,EAAE,EAC/B,sBAAsB,KAAK,EAAE,CAC9B,IACG,IAAI;QAEP,YAAY,IAAI,CACf,6BAAK,SAAS,EAAC,iCAAiC,IAAE,YAAY,CAAO,CACtE;QACD,6BAAK,SAAS,EAAC,4BAA4B;YACzC,oBAAC,OAAO,IAAC,SAAS,EAAC,0BAA0B,EAAC,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,GAAG,IAClE,QAAQ,CACD;YACT,WAAW,IAAI,CACd,oBAAC,SAAS,IAAC,SAAS,EAAC,gCAAgC,IAClD,WAAW,CACF,CACb,CACG,CACF,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -9,7 +9,7 @@ export interface HeadingProps extends React.HTMLAttributes<HTMLHeadingElement> {
|
|
|
9
9
|
/**
|
|
10
10
|
* Sizes from largest "2xl" to smallest "s"
|
|
11
11
|
*/
|
|
12
|
-
size: "
|
|
12
|
+
size: "xlarge" | "large" | "medium" | "small" | "xsmall";
|
|
13
13
|
/**
|
|
14
14
|
* Heading text
|
|
15
15
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@navikt/ds-react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.3",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "NAV designsystem react components",
|
|
6
6
|
"author": "NAV Designsystem team",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@material-ui/core": "^4.12.3",
|
|
38
|
-
"@navikt/ds-icons": "^0.8.
|
|
38
|
+
"@navikt/ds-icons": "^0.8.2",
|
|
39
39
|
"@popperjs/core": "^2.10.1",
|
|
40
40
|
"classnames": "^2.2.6",
|
|
41
41
|
"react-collapse": "^5.1.0",
|
|
@@ -64,5 +64,5 @@
|
|
|
64
64
|
"@types/react": "^17.0.30",
|
|
65
65
|
"react": "^17.0.0"
|
|
66
66
|
},
|
|
67
|
-
"gitHead": "
|
|
67
|
+
"gitHead": "68d4b60f0e8afd27ee341a6346bf00671f7c70dd"
|
|
68
68
|
}
|
package/src/modal/Modal.tsx
CHANGED
|
@@ -33,6 +33,9 @@ export interface ModalProps {
|
|
|
33
33
|
* @default true
|
|
34
34
|
*/
|
|
35
35
|
closeButton?: boolean;
|
|
36
|
+
"aria-labelledby"?: string;
|
|
37
|
+
"aria-describedby"?: string;
|
|
38
|
+
"aria-modal"?: boolean;
|
|
36
39
|
}
|
|
37
40
|
|
|
38
41
|
interface ModalComponent
|
|
@@ -56,6 +59,9 @@ const Modal = forwardRef<ReactModal, ModalProps>(
|
|
|
56
59
|
className,
|
|
57
60
|
shouldCloseOnOverlayClick = true,
|
|
58
61
|
closeButton = true,
|
|
62
|
+
"aria-describedby": ariaDescribedBy,
|
|
63
|
+
"aria-labelledby": ariaLabelledBy,
|
|
64
|
+
"aria-modal": ariaModal,
|
|
59
65
|
...rest
|
|
60
66
|
},
|
|
61
67
|
ref
|
|
@@ -81,6 +87,11 @@ const Modal = forwardRef<ReactModal, ModalProps>(
|
|
|
81
87
|
overlayClassName="navds-modal__overlay"
|
|
82
88
|
shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}
|
|
83
89
|
onRequestClose={(e) => onModalCloseRequest(e)}
|
|
90
|
+
aria={{
|
|
91
|
+
describedby: ariaDescribedBy,
|
|
92
|
+
labelledby: ariaLabelledBy,
|
|
93
|
+
modal: ariaModal,
|
|
94
|
+
}}
|
|
84
95
|
>
|
|
85
96
|
{children}
|
|
86
97
|
{closeButton && (
|
|
@@ -55,11 +55,7 @@ const PageHeader = forwardRef<HTMLDivElement, PageHeaderProps>(
|
|
|
55
55
|
<div className="navds-page-header__illustration">{illustration}</div>
|
|
56
56
|
)}
|
|
57
57
|
<div className="navds-page-header__wrapper">
|
|
58
|
-
<Heading
|
|
59
|
-
className="navds-page-header__title"
|
|
60
|
-
size="2xlarge"
|
|
61
|
-
level="1"
|
|
62
|
-
>
|
|
58
|
+
<Heading className="navds-page-header__title" size="xlarge" level="1">
|
|
63
59
|
{children}
|
|
64
60
|
</Heading>
|
|
65
61
|
{description && (
|
|
@@ -11,7 +11,7 @@ export interface HeadingProps extends React.HTMLAttributes<HTMLHeadingElement> {
|
|
|
11
11
|
/**
|
|
12
12
|
* Sizes from largest "2xl" to smallest "s"
|
|
13
13
|
*/
|
|
14
|
-
size: "
|
|
14
|
+
size: "xlarge" | "large" | "medium" | "small" | "xsmall";
|
|
15
15
|
/**
|
|
16
16
|
* Heading text
|
|
17
17
|
*/
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { Heading, BodyShort, BodyLong, Detail, Ingress, Label } from "../index";
|
|
3
|
-
import "./index.css";
|
|
4
3
|
|
|
5
4
|
export default {
|
|
6
5
|
title: "ds-react/typography",
|
|
@@ -16,7 +15,7 @@ const TitleTemplate = ({ level, size, spacing }) => (
|
|
|
16
15
|
);
|
|
17
16
|
|
|
18
17
|
export const HeadingStory = TitleTemplate.bind({});
|
|
19
|
-
HeadingStory.args = { level: 1, size: "
|
|
18
|
+
HeadingStory.args = { level: 1, size: "xlarge", spacing: false };
|
|
20
19
|
|
|
21
20
|
const IngressTemplate = ({ spacing }) => (
|
|
22
21
|
<Ingress spacing={spacing}>{lorem()}</Ingress>
|
|
@@ -64,8 +63,8 @@ DetailStory.args = { spacing: false, size: "medium" };
|
|
|
64
63
|
export const SideInnholdEksempel = () => {
|
|
65
64
|
return (
|
|
66
65
|
<div style={{ maxWidth: 600 }}>
|
|
67
|
-
<Heading level={"1"} size="
|
|
68
|
-
Title lvl 1
|
|
66
|
+
<Heading level={"1"} size="xlarge" spacing>
|
|
67
|
+
Title lvl 1 xlarge
|
|
69
68
|
</Heading>
|
|
70
69
|
<BodyLong spacing>
|
|
71
70
|
BodyLong: Aliqua ad et nisi commodo sit excepteur in commodo proident
|
|
@@ -87,7 +86,7 @@ export const SideInnholdEksempel = () => {
|
|
|
87
86
|
sunt proident irure consectetur excepteur.
|
|
88
87
|
</BodyLong>
|
|
89
88
|
<Heading level={"2"} size="xlarge" spacing>
|
|
90
|
-
Title lvl 2
|
|
89
|
+
Title lvl 2 large
|
|
91
90
|
</Heading>
|
|
92
91
|
<Ingress spacing>
|
|
93
92
|
Ingress: Mollit incididunt incididunt officia amet est et non aliqua
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { Meta } from "@storybook/addon-docs";
|
|
2
|
-
import { Alert, Heading, BodyLong } from "@navikt/ds-react";
|
|
3
|
-
|
|
4
|
-
<Meta title="ds-react/Typography/intro" />
|
|
5
|
-
|
|
6
|
-
# Hvordan ta i bruk typografien
|
|
7
|
-
|
|
8
|
-
Typografien kan tas i bruk som React komponenter eller ved å ta i bruk css-stilene.
|
|
9
|
-
Se eksemplene under ds-react tabben her i storybook for å se hvordan man tar i bruk både react og stilpakken for dette oppsettet.
|
|
10
|
-
|
|
11
|
-
Oppsettet er forbedret med blandt annet letter-spacing og line-height.
|
|
12
|
-
I tillegg kan man nå sette `spacing` proppen og man får da automatisk margin-bottom på typo-elementet.
|
|
13
|
-
Da kan man lett sikre riktig spacing mellom tekst i en artikkel.
|
|
14
|
-
|
|
15
|
-
Font-size er skrevet med REM, men basert på 16px root font size.
|
|
16
|
-
Dette vil si at de som har forstørret font-size på root vil ende opp med større font enn forventet.
|
|
17
|
-
For de som har satt root font size til 18px (1.125rem) kan da "fikse" dette ved å endre tilbake til 16px,
|
|
18
|
-
da det nye typo-oppsettet fikser større font, eller man ta i bruk css-en under.
|
|
19
|
-
|
|
20
|
-
Denne stylingen vil overskrive default variablene og tilpasse font-size.
|
|
21
|
-
|
|
22
|
-
```css
|
|
23
|
-
/* autogenerated fix for 18px root-font-size*/
|
|
24
|
-
:root {
|
|
25
|
-
--navds-font-size-heading-2xlarge: 2.2222222222222223rem;
|
|
26
|
-
--navds-font-size-heading-xlarge: 1.7777777777777777rem;
|
|
27
|
-
--navds-font-size-heading-large: 1.5555555555555556rem;
|
|
28
|
-
--navds-font-size-heading-medium: 1.3333333333333333rem;
|
|
29
|
-
--navds-font-size-heading-small: 1.1111111111111112rem;
|
|
30
|
-
--navds-font-size-xlarge: 1.1111111111111112rem;
|
|
31
|
-
--navds-font-size-large: 1rem;
|
|
32
|
-
--navds-font-size-medium: 0.8888888888888888rem;
|
|
33
|
-
--navds-font-size-small: 0.7777777777777778rem;
|
|
34
|
-
}
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
Vi anbefaler å før eller siden endre tilbake til default root font size da designsystemet sine nye
|
|
38
|
-
komponenter og design-tokens er basert på dette. Endringen til 18px root font size var i grunn for å teste en løsning for å
|
|
39
|
-
forstørre font, noe som er fikset ved nye typo-løsningen. Vi vil derfor unngå å måtte ha midlertidge patcher/fikser
|
|
40
|
-
for å tilpasse systemet for alle de forskjellige variantene av font size på root.
|
|
41
|
-
|
|
42
|
-
## Migrasjonsguide fra `nav-frontend-typografi` til `@navikt/ds-react`
|
|
43
|
-
|
|
44
|
-
De nye typografi-komponentene er ikke helt en-til-en med de gamle, så det kan hende du må trekke på en designer om du er usikker på hvilken komponent du skal velge. Eller du kan spørre en av oss i designsystemet.
|
|
45
|
-
|
|
46
|
-
### Overskrifter
|
|
47
|
-
|
|
48
|
-
Overskrifters tekststørrelse er nå uavhengig heading-nivå. Det betyr at du står fritt til å sørge for at overskrift-hierarkiet stemmer for din side, uavhengig av visuelt hierarki. Før kunne det være trøblete om men f.eks. ønsket seg en h1, men `<Sidetittel>` opplevdes som for stor.
|
|
49
|
-
|
|
50
|
-
En direkte en-til-en oversettelse av gamle komponenter til nye, hvor man bevarer størrelsene, ser sånn ut:
|
|
51
|
-
|
|
52
|
-
`<Sidetittel> -> <Heading size="2xlarge">`
|
|
53
|
-
|
|
54
|
-
`<Innholdstittel> -> <Heading size="xlarge">`
|
|
55
|
-
|
|
56
|
-
`<Systemtittel> -> <Heading size="medium">`
|
|
57
|
-
|
|
58
|
-
`<Undertittel> -> <Heading size="small">`
|
|
59
|
-
|
|
60
|
-
<Alert variant="warning">
|
|
61
|
-
Pass på å sette riktig `level` i hver Heading-komponent for å ivareta
|
|
62
|
-
hierarkiet (h1-h6).
|
|
63
|
-
</Alert>
|
|
64
|
-
|
|
65
|
-
### Brødtekst
|
|
66
|
-
|
|
67
|
-
De nye komponentene for brødtekst heter `<BodyLong>` og `<BodyShort>`. `<BodyLong>` er ment å brukes der det er snakk om løpende tekst, f.eks. i en artikkel. I komponent-tekst som med fordel kan være mer kompakt skal `<BodyShort>` brukes, for den har en lavere linjehøyde.
|
|
68
|
-
|
|
69
|
-
Ny brødtekst-størrelse er 18px. Om du bygger grensesnitt med kompakt design (les; interne flater) der du ønsker å fortsette å bruke 16px brødtekst så finnes det en `<BodyLong size="small">` og `<BodyShort size="small">` som er til for deg.
|
|
70
|
-
|
|
71
|
-
`<Normaltekst> ->` `<BodyLong>`/`<BodyShort>` (muligens med `size=small`)
|
|
72
|
-
|
|
73
|
-
### Andre komponenter
|
|
74
|
-
|
|
75
|
-
`<Ingress> -> <Ingress>`
|
|
76
|
-
|
|
77
|
-
`<Element> -> <Label>`
|
|
78
|
-
|
|
79
|
-
`<UndertekstBold> -> <Detail>`
|
|
80
|
-
|
|
81
|
-
`<Undertekst> -> <Detail size="small">`
|
|
82
|
-
|
|
83
|
-
`<Feilmelding>` Denne har vi valgt å ikke videreføre, for vi er usikre på om det er behov for en egen komponent. Skriv gjerne en melding på #designsystem eller send en PM til @andreas.nordahl eller @ken.aleksander.johansen om du savner den.
|