diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7b1f66a47538dc174c1402275eaa14c78db246cf..15dcc2c53ea8494d0065e20c8b45b3b8aee82952 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,15 +1,49 @@
+---
+## /* vim: set tabstop=2 softtabstop=2 shiftwidth=2 expandtab smarttab autoindent: */
 default:
-  image: node:12.16.1
-cache:
-  paths:
-    - node_modules/
-    - .yarn
+  image: "node:12.16.1"
+  cache:
+    paths:
+      - "node_modules/"
+
+stages:
+  - build
+  - test
+  - deploy
+
 build:
-  only:
-    - merge_request
+  stage: build
+  rules:
+    - if: '$CI_COMMIT_BRANCH == "master" && $CI_COMMIT_TAG != null'
+      when: always
+    - if: '$CI_MERGE_REQUEST_ID != null'
+      when: always
+  artifacts:
+    paths:
+      - "node_modules/"
+      - "dist/"
+      - "www/"
+    untracked: true
+  script:
+    - yarn "install" --immutable
+
+test:
+  stage: test
+  rules:
+    - if: '$CI_COMMIT_BRANCH == "master" && $CI_COMMIT_TAG != null'
+      when: on_success
+    - if: '$CI_MERGE_REQUEST_ID != null'
+      when: on_success
+  script:
+    - yarn "test"
+    
+deploy_npm:
+  stage: deploy
+  rules:
+    - if: '$CI_COMMIT_BRANCH == "master" && $CI_COMMIT_TAG != null'
+      when: on_success
   before_script:
-    - cp -RT /builds/julkiset-sivut/design-system-lib /usr/src/app/
+    ## Configure NPM with our token
+    - echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" >"${HOME}/.npmrc"
   script:
-    - cd /usr/src/app
-    - yarn install
-    - yarn test
+    - npm "publish" --access public
diff --git a/dist/cjs/hy-baseline.cjs.entry.js b/dist/cjs/hy-baseline.cjs.entry.js
deleted file mode 100644
index 69c6c4b1b86f9f78e023fead5a7122ec94cfc3cf..0000000000000000000000000000000000000000
--- a/dist/cjs/hy-baseline.cjs.entry.js
+++ /dev/null
@@ -1,19 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-const index = require('./index-8ee21469.js');
-
-const baselineCss = "div.hy-baseline{display:block;margin-bottom:1rem}div.hy-baseline>*+*{margin-top:1rem}";
-
-const Baseline = class {
-    constructor(hostRef) {
-        index.registerInstance(this, hostRef);
-    }
-    render() {
-        return (index.h("div", { class: "hy-baseline" }, index.h("slot", null)));
-    }
-};
-Baseline.style = baselineCss;
-
-exports.hy_baseline = Baseline;
diff --git a/dist/cjs/loader.cjs.js b/dist/cjs/loader.cjs.js
deleted file mode 100644
index 88e0857c1d8c9be1ec0c5b05fe97987fde4c98e4..0000000000000000000000000000000000000000
--- a/dist/cjs/loader.cjs.js
+++ /dev/null
@@ -1,11 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, '__esModule', { value: true });
-
-const index = require('./index-8ee21469.js');
-
-const defineCustomElements = (win, options) => index.patchEsm().then(() => {
-  return index.bootstrapLazy([["hy-baseline.cjs",[[4,"hy-baseline"]]],["hy-accordion-container_15.cjs",[[4,"hy-accordion-item",{"accordiontitle":[1],"ready":[32]}],[4,"hy-button",{"variant":[1],"state":[1],"icon":[1],"iconRight":[1,"icon-right"]}],[4,"hy-accordion-container",{"accordionid":[1]}],[4,"hy-docs-container"],[4,"hy-grid-container"],[4,"hy-grid-item",{"columns":[1],"columnssm":[1],"columnslg":[1],"contentalign":[1]}],[4,"hy-grid-row"],[1,"hy-heading",{"heading":[1],"section":[1]}],[1,"hy-ingress"],[1,"hy-link",{"variant":[1],"linkContent":[1,"link-content"],"url":[1],"ariaLabel":[1,"aria-label"],"isExternal":[4,"is-external"]}],[1,"hy-paragraph-text"],[4,"hy-row",{"justify":[1],"align":[1]}],[4,"hy-section-container"],[1,"hy-tiny-text"],[0,"hy-icon",{"icon":[1],"fill":[1],"size":[2]}]]]], options);
-});
-
-exports.defineCustomElements = defineCustomElements;
diff --git a/dist/collection/collection-manifest.json b/dist/collection/collection-manifest.json
deleted file mode 100644
index 0d7b6f7bd9c183c2f53e652082261a545b7a5c85..0000000000000000000000000000000000000000
--- a/dist/collection/collection-manifest.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
-  "entries": [
-    "./components/accordion-container/accordion-container.js",
-    "./components/accordion-item/accordion-item.js",
-    "./components/baseline/baseline.js",
-    "./components/button/button.js",
-    "./components/docs-container/docs-container.js",
-    "./components/grid-container/grid-container.js",
-    "./components/grid-item/grid-item.js",
-    "./components/grid-row/grid-row.js",
-    "./components/heading/heading.js",
-    "./components/icon/icon.js",
-    "./components/ingress/ingress.js",
-    "./components/link/link.js",
-    "./components/paragraph-text/paragraph-text.js",
-    "./components/row/row.js",
-    "./components/section-container/section-container.js",
-    "./components/tiny-text/tiny-text.js"
-  ],
-  "compiler": {
-    "name": "@stencil/core",
-    "version": "1.11.3",
-    "typescriptVersion": "3.8.3"
-  },
-  "collections": [],
-  "bundles": []
-}
\ No newline at end of file
diff --git a/dist/esm-es5/hy-baseline.entry.js b/dist/esm-es5/hy-baseline.entry.js
deleted file mode 100644
index 3747760cba61715a90bbc2bdf8382f88de726a8c..0000000000000000000000000000000000000000
--- a/dist/esm-es5/hy-baseline.entry.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import { r as registerInstance, h } from './index-5809f4b1.js';
-var baselineCss = "div.hy-baseline{display:block;margin-bottom:1rem}div.hy-baseline>*+*{margin-top:1rem}";
-var Baseline = /** @class */ (function () {
-    function Baseline(hostRef) {
-        registerInstance(this, hostRef);
-    }
-    Baseline.prototype.render = function () {
-        return (h("div", { class: "hy-baseline" }, h("slot", null)));
-    };
-    return Baseline;
-}());
-Baseline.style = baselineCss;
-export { Baseline as hy_baseline };
diff --git a/dist/esm-es5/loader.mjs b/dist/esm-es5/loader.mjs
deleted file mode 100644
index 61ee2aeb43164a8b7708628a91a37b55422a692a..0000000000000000000000000000000000000000
--- a/dist/esm-es5/loader.mjs
+++ /dev/null
@@ -1,5 +0,0 @@
-import { a as patchEsm, b as bootstrapLazy } from './index-5809f4b1.js';
-var defineCustomElements = function (win, options) { return patchEsm().then(function () {
-    return bootstrapLazy([["hy-baseline", [[4, "hy-baseline"]]], ["hy-accordion-container_15", [[4, "hy-accordion-item", { "accordiontitle": [1], "ready": [32] }], [4, "hy-button", { "variant": [1], "state": [1], "icon": [1], "iconRight": [1, "icon-right"] }], [4, "hy-accordion-container", { "accordionid": [1] }], [4, "hy-docs-container"], [4, "hy-grid-container"], [4, "hy-grid-item", { "columns": [1], "columnssm": [1], "columnslg": [1], "contentalign": [1] }], [4, "hy-grid-row"], [1, "hy-heading", { "heading": [1], "section": [1] }], [1, "hy-ingress"], [1, "hy-link", { "variant": [1], "linkContent": [1, "link-content"], "url": [1], "ariaLabel": [1, "aria-label"], "isExternal": [4, "is-external"] }], [1, "hy-paragraph-text"], [4, "hy-row", { "justify": [1], "align": [1] }], [4, "hy-section-container"], [1, "hy-tiny-text"], [0, "hy-icon", { "icon": [1], "fill": [1], "size": [2] }]]]], options);
-}); };
-export { defineCustomElements };
diff --git a/dist/esm/hy-baseline.entry.js b/dist/esm/hy-baseline.entry.js
deleted file mode 100644
index e850b07e61c65dc4b539ed606452ce945370af57..0000000000000000000000000000000000000000
--- a/dist/esm/hy-baseline.entry.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import { r as registerInstance, h } from './index-5809f4b1.js';
-
-const baselineCss = "div.hy-baseline{display:block;margin-bottom:1rem}div.hy-baseline>*+*{margin-top:1rem}";
-
-const Baseline = class {
-    constructor(hostRef) {
-        registerInstance(this, hostRef);
-    }
-    render() {
-        return (h("div", { class: "hy-baseline" }, h("slot", null)));
-    }
-};
-Baseline.style = baselineCss;
-
-export { Baseline as hy_baseline };
diff --git a/dist/esm/loader.mjs b/dist/esm/loader.mjs
deleted file mode 100644
index 0c74032e7eb58791a25804760bd3f9061e397877..0000000000000000000000000000000000000000
--- a/dist/esm/loader.mjs
+++ /dev/null
@@ -1,7 +0,0 @@
-import { a as patchEsm, b as bootstrapLazy } from './index-5809f4b1.js';
-
-const defineCustomElements = (win, options) => patchEsm().then(() => {
-  return bootstrapLazy([["hy-baseline",[[4,"hy-baseline"]]],["hy-accordion-container_15",[[4,"hy-accordion-item",{"accordiontitle":[1],"ready":[32]}],[4,"hy-button",{"variant":[1],"state":[1],"icon":[1],"iconRight":[1,"icon-right"]}],[4,"hy-accordion-container",{"accordionid":[1]}],[4,"hy-docs-container"],[4,"hy-grid-container"],[4,"hy-grid-item",{"columns":[1],"columnssm":[1],"columnslg":[1],"contentalign":[1]}],[4,"hy-grid-row"],[1,"hy-heading",{"heading":[1],"section":[1]}],[1,"hy-ingress"],[1,"hy-link",{"variant":[1],"linkContent":[1,"link-content"],"url":[1],"ariaLabel":[1,"aria-label"],"isExternal":[4,"is-external"]}],[1,"hy-paragraph-text"],[4,"hy-row",{"justify":[1],"align":[1]}],[4,"hy-section-container"],[1,"hy-tiny-text"],[0,"hy-icon",{"icon":[1],"fill":[1],"size":[2]}]]]], options);
-});
-
-export { defineCustomElements };
diff --git a/www/index.html b/www/index.html
deleted file mode 100644
index d0d839cb0deb73b256adc1cd2d300d03129f0beb..0000000000000000000000000000000000000000
--- a/www/index.html
+++ /dev/null
@@ -1,67 +0,0 @@
-<!doctype html><html dir="ltr" lang="en"><head> <link rel="stylesheet" type="text/css" href="/build/huds-lib.css"> <link rel="stylesheet" type="text/css" href="/fonts/fonts.css"> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=5.0"> <title>Stencil Component Starter</title> <script type="module" src="/build/huds-lib.esm.js"></script> <script nomodule="" src="/build/huds-lib.js"></script> </head> <body> <h1>Helsinki University web components demo</h1> <hy-section-container> This is a Section Container <hy-heading heading="h2" section="subsection"> Section Header </hy-heading> </hy-section-container> <hy-section-container> <hy-heading heading="h2" section="subsection"> Section Buttons </hy-heading> <hy-button icon="hy-icon-arrow-left"> Primary Arrow </hy-button> <hy-button state="disabled" icon="hy-icon-arrow-left"> Primary Arrow Disabled </hy-button> <hy-button variant="secondary" icon="hy-icon-arrow-left"> Outline Arrow </hy-button> <hy-button variant="secondary" state="disabled" icon="hy-icon-arrow-left"> Outline Arrow Disabled </hy-button> </hy-section-container> <hy-grid-container> <hy-grid-row> <hy-grid-item columns="6"> <hy-row> <hy-button> Primary </hy-button> <hy-button icon-right="hy-icon-arrow-right"> Primary Arrow </hy-button> <hy-button state="disabled"> Primary Disabled </hy-button> <hy-button state="disabled" icon-right="hy-icon-arrow-right"> Login Primary Arrow Disabled </hy-button> </hy-row> <hy-row> <hy-button variant="secondary"> Secondary </hy-button> <hy-button icon-right="hy-icon-arrow-right" variant="secondary"> Secondary Arrow </hy-button> <hy-button state="disabled" variant="secondary"> Secondary Disabled </hy-button> <hy-button state="disabled" icon-right="hy-icon-arrow-right" variant="secondary"> Secondary Arrow Disabled </hy-button> </hy-row> </hy-grid-item> <hy-grid-item columns="6"> <hy-heading heading="h1">This is a Heading 1</hy-heading> <hy-heading heading="h2">This is a Heading 2</hy-heading> <hy-heading heading="h3">This is a Heading 3</hy-heading> <hy-heading heading="h4">This is a Heading 4</hy-heading> <hy-heading heading="h5">This is a Heading 5</hy-heading> <hy-heading heading="h6">This is a Heading 6</hy-heading> </hy-grid-item> </hy-grid-row> <hy-grid-row> <hy-grid-item> <hy-heading heading="h2" section="subsection">This is subsection heading that has divider</hy-heading> Secondary Arrow Disabled </hy-grid-item> <hy-grid-item columns="6"> <hy-heading heading="h1">This is a Heading 1</hy-heading> <hy-heading heading="h2">This is a Heading 2</hy-heading> <hy-heading heading="h3">This is a Heading 3</hy-heading> <hy-heading heading="h4">This is a Heading 4</hy-heading> <hy-heading heading="h5">This is a Heading 5</hy-heading> <hy-heading heading="h6">This is a Heading 6</hy-heading> </hy-grid-item> <hy-grid-item columnssm="12"> <hy-docs-container> <hy-accordion-container accordionid="example-1"> <hy-accordion-item accordiontitle="This is accordion item 1"> Lorem ipsum dolor sit amet, consectetur adipiscing elit.
-              Ut ac orci nisl. Nam at arcu eget enim interdum rhoncus eu nec turpis.
-              Duis in est id nunc dictum lobortis. Nullam magna lectus, hendrerit tempus pharetra at, cursus sit amet
-              orci.
-              Aenean in pulvinar mi. Nulla facilisi. Etiam elementum malesuada ante, quis facilisis arcu varius
-              consectetur.
-              Phasellus eu nisl elementum, laoreet sem condimentum, hendrerit urna. Ut eu lorem et nunc consectetur
-              bibendum.
-              Nulla sed orci urna. Vivamus ac lectus ex. Nam sit amet tincidunt leo. In sed nunc eu odio semper maximus
-              vel suscipit ligula. </hy-accordion-item> <hy-accordion-item accordiontitle="This is accordion item 2"> <hy-grid-container> <hy-grid-row> <hy-grid-item columnssm="12"> <hy-heading heading="h3">Lorem ipsum Heading</hy-heading> Lorem ipsum dolor sit amet, consectetur adipiscing elit.
-                    Ut ac orci nisl. Nam at arcu eget enim interdum rhoncus eu nec turpis.
-                    Duis in est id nunc dictum lobortis. Nullam magna lectus, hendrerit tempus pharetra at, cursus sit
-                    amet orci.
-                    Aenean in pulvinar mi. Nulla facilisi. Etiam elementum malesuada ante, quis facilisis arcu varius
-                    consectetur.
-                    Phasellus eu nisl elementum, laoreet sem condimentum, hendrerit urna. Ut eu lorem et nunc
-                    consectetur bibendum.
-                    Nulla sed orci urna. Vivamus ac lectus ex. Nam sit amet tincidunt leo. In sed nunc eu odio semper
-                    maximus vel suscipit ligula. </hy-grid-item> </hy-grid-row> <hy-grid-row> <hy-grid-item columns="12"> <hy-heading heading="h4" section="subsection">Divider heading</hy-heading> </hy-grid-item> <hy-grid-item columnssm="12" columns="6" columnslg="6"> Lorem ipsum dolor sit amet, consectetur adipiscing elit.
-                    Ut ac orci nisl. Nam at arcu eget enim interdum rhoncus eu nec turpis.
-                    Duis in est id nunc dictum lobortis. Nullam magna lectus, hendrerit tempus pharetra at, cursus sit
-                    amet orci.
-                    Aenean in pulvinar mi. Nulla facilisi. Etiam elementum malesuada ante, quis facilisis arcu varius
-                    consectetur.
-                    Phasellus eu nisl elementum, laoreet sem condimentum, hendrerit urna. Ut eu lorem et nunc
-                    consectetur bibendum.
-                    Nulla sed orci urna. Vivamus ac lectus ex. Nam sit amet tincidunt leo. In sed nunc eu odio semper
-                    maximus vel suscipit ligula. <hy-link-box text-title="Text title 2" text-description="Text description Lorem ipsum dolor sit amet, consectetur adipiscing elit." url="https://www.google.com" aria-label="Link to google" is-external="false"></hy-link-box> </hy-grid-item> <hy-grid-item columnssm="12" columns="6" columnslg="6"> <hy-link-box image-url="https://www.helsinki.fi/sites/default/files/styles/16_9_huge/public/coronavirus_1920x1080px_4.jpg?itok=dOgb6pfs" image-alt="Test image" text-title="Text title" text-description="Text description Lorem ipsum dolor sit amet, consectetur adipiscing elit." url="https://www.google.com" aria-label="Link to google" is-external="true"></hy-link-box> Lorem ipsum dolor sit amet, consectetur adipiscing elit.
-                    Ut ac orci nisl. Nam at arcu eget enim interdum rhoncus eu nec turpis.
-                    Duis in est id nunc dictum lobortis. Nullam magna lectus, hendrerit tempus pharetra at, cursus sit
-                    amet orci.
-                    Aenean in pulvinar mi. Nulla facilisi. Etiam elementum malesuada ante, quis facilisis arcu varius
-                    consectetur.
-                    Phasellus eu nisl elementum, laoreet sem condimentum, hendrerit urna. Ut eu lorem et nunc
-                    consectetur bibendum.
-                    Nulla sed orci urna. Vivamus ac lectus ex. Nam sit amet tincidunt leo. In sed nunc eu odio semper
-                    maximus vel suscipit ligula. </hy-grid-item> </hy-grid-row> </hy-grid-container> </hy-accordion-item> <hy-accordion-item accordiontitle="This is accordion item 3"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur
-              adipiscing elit. </hy-accordion-item> </hy-accordion-container> </hy-docs-container> </hy-grid-item> </hy-grid-row> <hy-grid-row> <hy-grid-item> <hy-heading heading="h2" section="subsection">This is subsection heading that has divider</hy-heading> </hy-grid-item> </hy-grid-row> <hy-ingress> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut ac orci
-      nisl. Nam at arcu eget enim interdum rhoncus eu nec turpis. Duis in est
-      id nunc dictum lobortis. Nullam magna lectus, hendrerit tempus pharetra
-      at, cursus sit amet orci </hy-ingress> <hy-paragraph-text> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut ac orci
-      nisl. Nam at arcu eget enim interdum rhoncus eu nec turpis. Duis in est
-      id nunc dictum lobortis. Nullam magna lectus, hendrerit tempus pharetra
-      at, cursus sit amet orci. Aenean in pulvinar mi. Nulla facilisi. Etiam
-      elementum malesuada ante, quis facilisis arcu varius consectetur.
-      Phasellus eu nisl elementum, laoreet sem condimentum, hendrerit urna. Ut
-      eu lorem et nunc consectetur bibendum. Nulla sed orci urna. Vivamus ac
-      lectus ex. Nam sit amet tincidunt leo. In sed nunc eu odio semper
-      maximus vel suscipit ligula. In hac habitasse platea dictumst. </hy-paragraph-text> <hy-tiny-text>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</hy-tiny-text> <hy-link url="https://www.google.com" link-content="Regular link" aria-label="Regular link" is-external="false"></hy-link> <hy-link variant="within-paragraph" link-content="Link within paragraph" aria-label="Link within paragraph" url="https://www.google.com" is-external="true"></hy-link> <hy-heading heading="h3">Grid things</hy-heading> <hy-grid-row> <hy-grid-item columns="4" columnslg="2" columnssm="6"> <hy-paragraph-text> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut ac orci
-          nisl. Nam at arcu eget enim interdum rhoncus eu nec turpis. Duis in
-          est id nunc dictum lobortis. Nullam magna lectus, hendrerit tempus
-          pharetra at, cursus sit amet orci. Aenean in pulvinar mi. </hy-paragraph-text> </hy-grid-item> <hy-grid-item columns="8" columnslg="10" columnssm="6"> <hy-grid-row> <hy-grid-item columns="4" columnssm="12" columnslg="3" contentalign="left"> <hy-tiny-text>Lorem ipsum dolor sit amet, consectetur adipiscing
-              elit.</hy-tiny-text> </hy-grid-item> <hy-grid-item columns="4" columnssm="12" columnslg="3" contentalign="center"> <hy-tiny-text>Lorem ipsum dolor sit amet, consectetur adipiscing
-              elit.</hy-tiny-text> </hy-grid-item> <hy-grid-item columns="4" columnssm="12" columnslg="3" contentalign="right"> <hy-tiny-text>Lorem ipsum dolor sit amet, consectetur adipiscing
-              elit.</hy-tiny-text> </hy-grid-item> <hy-grid-item columns="4" columnssm="12" columnslg="3" contentalign="left"> <hy-tiny-text>Lorem ipsum dolor sit amet, consectetur adipiscing
-              elit.</hy-tiny-text> </hy-grid-item> <hy-grid-item columns="4" columnssm="12" columnslg="3" contentalign="center"> <hy-tiny-text>Lorem ipsum dolor sit amet, consectetur adipiscing
-              elit.</hy-tiny-text> </hy-grid-item> <hy-grid-item columns="4" columnssm="12" columnslg="3" contentalign="right"> <hy-tiny-text>Lorem ipsum dolor sit amet, consectetur adipiscing
-              elit.</hy-tiny-text> </hy-grid-item> <hy-grid-item columns="4" columnssm="12" columnslg="3" contentalign="left"> <hy-tiny-text>Lorem ipsum dolor sit amet, consectetur adipiscing
-              elit.</hy-tiny-text> </hy-grid-item> <hy-grid-item columns="4" columnssm="12" columnslg="3" contentalign="center"> <hy-tiny-text>Lorem ipsum dolor sit amet, consectetur adipiscing
-              elit.</hy-tiny-text> </hy-grid-item> </hy-grid-row> </hy-grid-item> <hy-grid-item columns="12"> <hy-accordion-container accordionid="example-2"> <hy-accordion-item accordiontitle="This is accordion item 1"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. </hy-accordion-item> </hy-accordion-container> </hy-grid-item> </hy-grid-row> <hy-grid-row> <hy-grid-item columnssm="12" columns="3" columnslg="3"> <hy-link-box image-url="https://www.helsinki.fi/sites/default/files/styles/16_9_huge/public/coronavirus_1920x1080px_4.jpg?itok=dOgb6pfs" image-alt="Test image" text-title="Text title" text-description="Text description Lorem ipsum dolor sit amet, consectetur adipiscing elit." url="https://www.google.com" aria-label="Link to google" is-external="true"></hy-link-box> </hy-grid-item> <hy-grid-item columnssm="12" columns="3" columnslg="3"> <hy-link-box image-url="https://www.helsinki.fi/sites/default/files/styles/16_9_huge/public/hy_yhteishaku2020_nostokuva_herokuva_uusi_3.jpg?itok=Oae0xaQR" image-alt="Test image 2" text-title="Text title 2" text-description="Text description Lorem ipsum dolor sit amet, consectetur adipiscing elit." url="https://www.google.com" aria-label="Link to google" is-external="false"></hy-link-box> </hy-grid-item> <hy-grid-item columnssm="12" columns="3" columnslg="3"> <hy-link-box text-title="Text title 2" text-description="Text description Lorem ipsum dolor sit amet, consectetur adipiscing elit." url="https://www.google.com" aria-label="Link to google" is-external="false"></hy-link-box> </hy-grid-item> <hy-grid-item columnssm="12" columns="3" columnslg="3"> <hy-link-box text-title="Text title with longer title and no description" url="https://www.google.com" aria-label="Link to google" is-external="false"></hy-link-box> </hy-grid-item> <hy-grid-item columnssm="12" columns="3" columnslg="3"> <hy-link-box image-url="https://www.helsinki.fi/sites/default/files/styles/16_9_huge/public/hy_yhteishaku2020_nostokuva_herokuva_uusi_3.jpg?itok=Oae0xaQR" image-alt="Test image 2" text-title="Text title 2" text-description="Text description Lorem ipsum dolor sit amet, consectetur adipiscing elit." url="https://www.google.com" aria-label="Link to google" is-external="false"></hy-link-box> </hy-grid-item> <hy-grid-item columnssm="12" columns="3" columnslg="3"> <hy-link-box image-url="https://www.helsinki.fi/sites/default/files/styles/16_9_huge/public/hy_yhteishaku2020_nostokuva_herokuva_uusi_3.jpg?itok=Oae0xaQR" image-alt="Test image 2" text-title="Text title with image and no description" url="https://www.google.com" aria-label="Link to google" is-external="false"></hy-link-box> </hy-grid-item> <hy-grid-item columnssm="12" columns="3" columnslg="3"> <hy-link-box text-title="Text title 2" text-description="Text description Lorem ipsum dolor sit amet, consectetur adipiscing elit." url="https://www.google.com" aria-label="Link to google" is-external="false"></hy-link-box> </hy-grid-item> </hy-grid-row> <hy-grid-row> <hy-grid-item columnssm="12" columns="6" columnslg="4"> <hy-link-box image-url="https://www.helsinki.fi/sites/default/files/styles/16_9_huge/public/coronavirus_1920x1080px_4.jpg?itok=dOgb6pfs" image-alt="Test image" text-title="Text title" text-description="Text description Lorem ipsum dolor sit amet, consectetur adipiscing elit." url="https://www.google.com" aria-label="Link to google" is-external="true"></hy-link-box> </hy-grid-item> <hy-grid-item columnssm="12" columns="6" columnslg="4"> <hy-link-box image-url="https://www.helsinki.fi/sites/default/files/styles/16_9_huge/public/hy_yhteishaku2020_nostokuva_herokuva_uusi_3.jpg?itok=Oae0xaQR" image-alt="Test image 2" text-title="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet" url="https://www.google.com" aria-label="Link to google" is-external="false"></hy-link-box> </hy-grid-item> <hy-grid-item columnssm="12" columns="6" columnslg="4"> <hy-link-box text-title="Text title 2" text-description="Text description Lorem ipsum dolor sit amet, consectetur adipiscing elit." url="https://www.google.com" aria-label="Link to google" is-external="false"></hy-link-box> </hy-grid-item> </hy-grid-row> <hy-grid-row> <hy-grid-item columnssm="12" columns="6" columnslg="4"> <hy-heading heading="h3">The end</hy-heading> </hy-grid-item> </hy-grid-row> </hy-grid-container> <script>if ('serviceWorker' in navigator && location.protocol !== 'file:') {
-  // auto-unregister service worker during dev mode
-  navigator.serviceWorker.getRegistration().then(function(registration) {
-  if (registration) {
-    registration.unregister().then(function() { location.reload(true) });
-  }
-  });
-}</script></body></html>
\ No newline at end of file