CDN

Load Corn UI directly in a browser via script tags — no npm or build tools required.

Corn UI publishes minified IIFE bundles alongside every release, served as static files. No npm, no bundler, no build step.

All files are served from:

https://cornui.com/cdn/

Pin a version

https://cornui.com/cdn/latest/ follows the newest release and will change under you. For anything you deploy, pin the version instead — the versioned files never change, so they can be cached indefinitely:

https://cornui.com/cdn/v1.0.0-beta.4/theme.min.css

Subresource integrity

These bundles execute on your page from a host you do not control. Pin what runs with an integrity attribute and the browser will refuse anything that does not match:

<script src="https://cornui.com/cdn/latest/corn-ui.min.js" integrity="sha384-d7HFAwBp/VY9dKKhsMc3+VYoFKjFW1XHZ++n56+7FW2wuRvPTaPBLw6GsKYOgodM" crossorigin="anonymous"></script>

integrity needs crossorigin beside it — without it the browser cannot read the response it fetched and the check fails closed.

Hashes for v1.0.0-beta.4, also published at https://cornui.com/cdn/v1.0.0-beta.4/integrity.json:

FileIntegrity
index.min.jssha384-MuQ/PviLSg9ay6CNcWY4IrcsnqVkBjGaOcVb1WkRXZezFBgOSKt6coLAfb+SaAOA
corn-ui.min.jssha384-d7HFAwBp/VY9dKKhsMc3+VYoFKjFW1XHZ++n56+7FW2wuRvPTaPBLw6GsKYOgodM
corn-ui-overlays.min.jssha384-tpEw9shVR3sShAN9HnJDJDpbBSxD+0SAVo+z+385tvJzjfrAfpTTGGK1I2w0/q89
corn-ui-notifications.min.jssha384-L83C/m/zT45arW6s2rxmDTU/A3dJwphBZRBxizQp6FrUMSc0U6NM2B2GDf5oSAcR
corn-ui-markdown.min.jssha384-ezsGmomQGlOyEt1+72pERBBRYAfHU+qDE9qyWXQS/KAAx8AA5E7zOBTjy1YlI97a
index.min.csssha384-GbG270uOepV6BWa3BIHnPtecSy3M8Fk6ZdFaxXOhbFLd+GWeQXUdbc2KGlICTdxq
theme.min.csssha384-XqcPj2VZkAj+u2CksGx0I2ASqp18Ko0Yps9Bv3nnaP5o0ioxK3/3WWNEs5r7bWZN
corn-ui-overlays.min.csssha384-vJX1tWYG5QYgc+86tSqc2V8PjsZMErax42LtKupowhpGt7Xq37OmPGPqCm11ChtO
corn-ui-notifications.min.csssha384-cUdQaUoPtfNf7+KYItDDjfJYcOTDVknllEZo4jr0cEtSXA1Q6uK4d0Ah8S99TJFB
corn-ui-markdown.min.csssha384-fpDeLQoWO3JaiimTkJlsRfkBvjrs8K+mNUJ6LM3QBQhRkZNWPE7lDA38IZ9a/prj

Everything, one entry point

If you just want the library, take these two files. index.min.js carries every package behind the single CornUI global, and index.min.css every stylesheet:

<link rel="stylesheet" href="https://cornui.com/cdn/latest/index.min.css" integrity="sha384-GbG270uOepV6BWa3BIHnPtecSy3M8Fk6ZdFaxXOhbFLd+GWeQXUdbc2KGlICTdxq" crossorigin="anonymous">
<script src="https://cornui.com/cdn/latest/index.min.js" integrity="sha384-MuQ/PviLSg9ay6CNcWY4IrcsnqVkBjGaOcVb1WkRXZezFBgOSKt6coLAfb+SaAOA" crossorigin="anonymous"></script>

The per-package bundles further down exist for pages that only need part of it.

CSS only

Most of the library is plain CSS. If you are not using the interactive components, one stylesheet is the whole install — no JavaScript at all:

<link rel="stylesheet" href="https://cornui.com/cdn/latest/theme.min.css" integrity="sha384-XqcPj2VZkAj+u2CksGx0I2ASqp18Ko0Yps9Bv3nnaP5o0ioxK3/3WWNEs5r7bWZN" crossorigin="anonymous">
<button class="corn-button" data-variant="primary">Save</button>

Download it

The same files are downloadable, so the library can be vendored and bundled with no network access at build time:

https://cornui.com/cdn/v1.0.0-beta.4/corn-ui-v1.0.0-beta.4.tar.gz

It unpacks to corn-ui-v1.0.0-beta.4/dist/ holding every bundle plus integrity.json.

Releases

Every tagged release lists these assets by name:

https://gitlab.com/corn-dev/corn-ui/-/releases

Each is also addressable individually from the GitLab Package Registry, under the generic package corn-ui-cdn:

https://gitlab.com/api/v4/projects/corn-dev%2Fcorn-ui/packages/generic/corn-ui-cdn/1.0.0-beta.4/index.min.js

Packages

@corndev/ui

Core vanilla JS layout and form components with CSS design tokens.

Exposes window.CornUI.

<link rel="stylesheet" href="https://cornui.com/cdn/latest/theme.min.css" integrity="sha384-XqcPj2VZkAj+u2CksGx0I2ASqp18Ko0Yps9Bv3nnaP5o0ioxK3/3WWNEs5r7bWZN" crossorigin="anonymous">
<script src="https://cornui.com/cdn/latest/corn-ui.min.js" integrity="sha384-d7HFAwBp/VY9dKKhsMc3+VYoFKjFW1XHZ++n56+7FW2wuRvPTaPBLw6GsKYOgodM" crossorigin="anonymous"></script>

@corndev/ui-overlays

Overlay components: Modal, Drawer, Accordion, Tooltip, Popover, Menu.

Exposes window.CornUIOverlays.

<link rel="stylesheet" href="https://cornui.com/cdn/latest/theme.min.css" integrity="sha384-XqcPj2VZkAj+u2CksGx0I2ASqp18Ko0Yps9Bv3nnaP5o0ioxK3/3WWNEs5r7bWZN" crossorigin="anonymous">
<link rel="stylesheet" href="https://cornui.com/cdn/latest/corn-ui-overlays.min.css" integrity="sha384-vJX1tWYG5QYgc+86tSqc2V8PjsZMErax42LtKupowhpGt7Xq37OmPGPqCm11ChtO" crossorigin="anonymous">
<script src="https://cornui.com/cdn/latest/corn-ui-overlays.min.js" integrity="sha384-tpEw9shVR3sShAN9HnJDJDpbBSxD+0SAVo+z+385tvJzjfrAfpTTGGK1I2w0/q89" crossorigin="anonymous"></script>

@corndev/ui-notifications

Notification components: Alert (inline) and Toast (stacked pop-ups).

Exposes window.CornUINotifications.

<link rel="stylesheet" href="https://cornui.com/cdn/latest/theme.min.css" integrity="sha384-XqcPj2VZkAj+u2CksGx0I2ASqp18Ko0Yps9Bv3nnaP5o0ioxK3/3WWNEs5r7bWZN" crossorigin="anonymous">
<link rel="stylesheet" href="https://cornui.com/cdn/latest/corn-ui-notifications.min.css" integrity="sha384-cUdQaUoPtfNf7+KYItDDjfJYcOTDVknllEZo4jr0cEtSXA1Q6uK4d0Ah8S99TJFB" crossorigin="anonymous">
<script src="https://cornui.com/cdn/latest/corn-ui-notifications.min.js" integrity="sha384-L83C/m/zT45arW6s2rxmDTU/A3dJwphBZRBxizQp6FrUMSc0U6NM2B2GDf5oSAcR" crossorigin="anonymous"></script>

@corndev/ui-markdown

Markdown renderer that applies Corn UI typography classes to parsed output.

Exposes window.CornUIMarkdown.

<link rel="stylesheet" href="https://cornui.com/cdn/latest/theme.min.css" integrity="sha384-XqcPj2VZkAj+u2CksGx0I2ASqp18Ko0Yps9Bv3nnaP5o0ioxK3/3WWNEs5r7bWZN" crossorigin="anonymous">
<link rel="stylesheet" href="https://cornui.com/cdn/latest/corn-ui-markdown.min.css" integrity="sha384-fpDeLQoWO3JaiimTkJlsRfkBvjrs8K+mNUJ6LM3QBQhRkZNWPE7lDA38IZ9a/prj" crossorigin="anonymous">
<script src="https://cornui.com/cdn/latest/corn-ui-markdown.min.js" integrity="sha384-ezsGmomQGlOyEt1+72pERBBRYAfHU+qDE9qyWXQS/KAAx8AA5E7zOBTjy1YlI97a" crossorigin="anonymous"></script>

Everything together

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <link rel="stylesheet" href="https://cornui.com/cdn/latest/theme.min.css" integrity="sha384-XqcPj2VZkAj+u2CksGx0I2ASqp18Ko0Yps9Bv3nnaP5o0ioxK3/3WWNEs5r7bWZN" crossorigin="anonymous">
  <link rel="stylesheet" href="https://cornui.com/cdn/latest/corn-ui-overlays.min.css" integrity="sha384-vJX1tWYG5QYgc+86tSqc2V8PjsZMErax42LtKupowhpGt7Xq37OmPGPqCm11ChtO" crossorigin="anonymous">
  <link rel="stylesheet" href="https://cornui.com/cdn/latest/corn-ui-notifications.min.css" integrity="sha384-cUdQaUoPtfNf7+KYItDDjfJYcOTDVknllEZo4jr0cEtSXA1Q6uK4d0Ah8S99TJFB" crossorigin="anonymous">
  <link rel="stylesheet" href="https://cornui.com/cdn/latest/corn-ui-markdown.min.css" integrity="sha384-fpDeLQoWO3JaiimTkJlsRfkBvjrs8K+mNUJ6LM3QBQhRkZNWPE7lDA38IZ9a/prj" crossorigin="anonymous">
</head>
<body>
  <script src="https://cornui.com/cdn/latest/corn-ui.min.js" integrity="sha384-d7HFAwBp/VY9dKKhsMc3+VYoFKjFW1XHZ++n56+7FW2wuRvPTaPBLw6GsKYOgodM" crossorigin="anonymous"></script>
  <script src="https://cornui.com/cdn/latest/corn-ui-overlays.min.js" integrity="sha384-tpEw9shVR3sShAN9HnJDJDpbBSxD+0SAVo+z+385tvJzjfrAfpTTGGK1I2w0/q89" crossorigin="anonymous"></script>
  <script src="https://cornui.com/cdn/latest/corn-ui-notifications.min.js" integrity="sha384-L83C/m/zT45arW6s2rxmDTU/A3dJwphBZRBxizQp6FrUMSc0U6NM2B2GDf5oSAcR" crossorigin="anonymous"></script>
  <script src="https://cornui.com/cdn/latest/corn-ui-markdown.min.js" integrity="sha384-ezsGmomQGlOyEt1+72pERBBRYAfHU+qDE9qyWXQS/KAAx8AA5E7zOBTjy1YlI97a" crossorigin="anonymous"></script>

  <script>
    // Globals: CornUI, CornUIOverlays, CornUINotifications, CornUIMarkdown
    const { createButton } = CornUI;
  </script>
</body>
</html>

Notes

  • Each bundle is self-contained. You do not need to load corn-ui.min.js before corn-ui-overlays.min.js.
  • theme.min.css carries all core component styles and the design tokens. Load it before any package CSS.
  • There are no React CDN bundles — install the npm packages for React.
  • Bundles and hashes are regenerated by npm run build:cdn on every release.