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:
| File | Integrity |
|---|---|
index.min.js | sha384-MuQ/PviLSg9ay6CNcWY4IrcsnqVkBjGaOcVb1WkRXZezFBgOSKt6coLAfb+SaAOA |
corn-ui.min.js | sha384-d7HFAwBp/VY9dKKhsMc3+VYoFKjFW1XHZ++n56+7FW2wuRvPTaPBLw6GsKYOgodM |
corn-ui-overlays.min.js | sha384-tpEw9shVR3sShAN9HnJDJDpbBSxD+0SAVo+z+385tvJzjfrAfpTTGGK1I2w0/q89 |
corn-ui-notifications.min.js | sha384-L83C/m/zT45arW6s2rxmDTU/A3dJwphBZRBxizQp6FrUMSc0U6NM2B2GDf5oSAcR |
corn-ui-markdown.min.js | sha384-ezsGmomQGlOyEt1+72pERBBRYAfHU+qDE9qyWXQS/KAAx8AA5E7zOBTjy1YlI97a |
index.min.css | sha384-GbG270uOepV6BWa3BIHnPtecSy3M8Fk6ZdFaxXOhbFLd+GWeQXUdbc2KGlICTdxq |
theme.min.css | sha384-XqcPj2VZkAj+u2CksGx0I2ASqp18Ko0Yps9Bv3nnaP5o0ioxK3/3WWNEs5r7bWZN |
corn-ui-overlays.min.css | sha384-vJX1tWYG5QYgc+86tSqc2V8PjsZMErax42LtKupowhpGt7Xq37OmPGPqCm11ChtO |
corn-ui-notifications.min.css | sha384-cUdQaUoPtfNf7+KYItDDjfJYcOTDVknllEZo4jr0cEtSXA1Q6uK4d0Ah8S99TJFB |
corn-ui-markdown.min.css | sha384-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.jsbeforecorn-ui-overlays.min.js. theme.min.csscarries 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:cdnon every release.