Native Shell
Native Shell은 모든 플랫폼의 앱 안에서 만들어지는 AI UI입니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Documentation and live playground for the Eos component library.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Moved. eos is now sui (simple ui). The docs live at https://sui.dame.gg and the source at https://github.com/Dame-G/sui. This repo is archived.
Source of https://eos.dame.gg, the documentation and live-preview site for the public eos library. It is released under the MIT license.
The site is built with VitePress and uses the library it documents. The page frame (header, navigation, search, footer), the home page, the tokens page and the playground are eos components. No VitePress theme CSS is loaded: the markdown prose has a few rules of the site's own (custom.css), written with the library's tokens, and code blocks, tables and inline code are the library's components or their markup.
docs/: guide pages, the tokens page, the theme playground, patterns, and one generated page per component.The library sits beside this repo (../eos) and is built. Set EOS_DIR to use a checkout elsewhere.
The site documents whatever commit of the library is checked out. The install command on the home page pins the version in that checkout's package.json.
To see another version locally, check it out in the library (git checkout @eos-ui/[email protected], or a branch) and restart docs:dev, or point EOS_DIR at a git worktree of it.
In CI the library ref is chosen like this:
@eos-ui/[email protected] tag in Dame-G/eos, looked up when the workflow runs. If no such tag can be found the job fails with a message. It never falls back to main.eos_ref uses that branch, tag or commit instead. Failing that, the repository variable EOS_REF is used. Set EOS_REF only to pin production to something other than the latest release, and clear it afterwards.main (or EOS_REF when set), so a site change that needs unreleased library code is caught before it merges.This means documentation for unreleased library code appears only in pull request builds and local dev. It reaches eos.dame.gg once the library is released and the site is redeployed.
# once, in ../eos
corepack pnpm install
corepack pnpm build # tokens, then the Vue package
# in this repo
corepack pnpm install
corepack pnpm docs:dev # http://localhost:5173
corepack pnpm docs:build # static site in docs/.vitepress/dist
corepack pnpm docs:preview # serve the build
corepack pnpm test # Vitest: logic in Node, components in Chromium (Playwright's, or Edge when it is not installed)
corepack pnpm typecheck # vue-tsc over the theme, config and tests
corepack pnpm pages:check # checks the pages of a running preview (pass its URL; --all for every component), desktop in light and dark, phone in light
corepack pnpm llms # writes docs/public/llms.txt and publishes the library's llms files (dev and build run it)
The site imports the library's built dist. After a library change (a new component, a changed prop), rebuild ../eos. A component that exists in src but not in dist fails its demo test.
Component pages are generated from the library's folders. A new component appears in the sidebar and gets a page after two steps:
docs/components/demos/<Name>.vue, named after the component folder (Stamp.vue). Copy an existing demo. Show the default and the interesting states: error, disabled, loading, open.docs/.vitepress/groups.mjs so it lands in the right sidebar group. Without a line it appears under "More".The page is the component's README.md from the library, read at build time and never copied. The demo follows the introduction, with its source in a panel. tests/demos.test.ts fails if a component has no demo, and checks every demo for console errors and axe violations.
| Path | What |
|---|---|
docs/.vitepress/config.mts | Sidebar (from the library folders), search, build settings |
docs/.vitepress/eos-source.mjs | Reads the library checkout: component list, READMEs, props tables |
docs/.vitepress/groups.mjs | Component to sidebar group (the library's layers). A component missing here fails the build when CI is set |
docs/.vitepress/csp.mjs, redirects.mjs | Generate _headers (Content-Security-Policy with script hashes) and _redirects at the end of the build |
docs/.vitepress/lean-theme-chunk.ts | Points the library's reka-ui imports at the files that define them, so the chunk every page loads carries only what the header uses |
docs/.vitepress/theme/playground/ | The playground: model.ts (state shape), build.ts (state to theme and code), presets.ts, random.ts, codec.ts (share link), contrast.ts (contrast pairs); all but model.ts and build.ts' callers are plain TypeScript with unit tests |
docs/.vitepress/theme/ | Installs createEos, the layout and prose styles (custom.css), the fonts (fonts.css), demo and token components, the playground |
docs/components/[name].md, [name].paths.mjs | One page per component folder |
docs/components/demos/ | One hand-written demo per component |
docs/patterns/ | Five example pages, each a Vue component and a page |
docs/data/ | Build-time loaders for the component list, the tokens page and the contrast table |
scripts/gen-llms.mjs | Writes docs/public/llms.txt (the site's pages, and each component's page beside the library's reference for it) and copies the library's llms-full.txt and llms/ |
scripts/check-pages.mjs | Page checks against a running preview |
| tests/ | Demo and pattern tests |
../eos, which has its own node_modules. resolve.dedupe: ["vue"] and ssr.noExternal in the config keep one copy of Vue in the dev server, the build and the tests.@layer e.*; the site's own custom.css is unlayered, and its prose rules sit in @scope (.site-prose) to (...), so they stop at the demos, patterns and library components.The site uses VitePress's markdown, router, search index and build, not its theme. lean-theme-chunk.ts relies on the build putting statically imported theme modules in one chunk, and config.mts strips two things VitePress injects for its default theme (vp-icons.css and the check-mac-os script). Upgrade it on its own, then run pnpm docs:build, pnpm build:check and pnpm pages:check.
package.json links both packages to the checkout beside this repo:
"@eos-ui/vue": "link:../eos/packages/vue",
"@eos-ui/tokens": "link:../eos/packages/tokens"
To use registry versions, replace the two lines with versions ("@eos-ui/vue": "^0.1.0") and run corepack pnpm install. The component pages still read the library's README.md files from the checkout of Dame-G/eos beside this repo (or EOS_DIR).
The build writes _headers and _redirects into docs/.vitepress/dist (there is no public/_headers). _headers carries the Content-Security-Policy: scripts are limited to the site's own files and to the inline scripts of the built pages, listed by SHA-256 hash, so there is no 'unsafe-inline' for scripts. The hashes are read from the finished HTML, so a changed boot script or a new VitePress inline script is picked up without edits. JSON-LD blocks are data, not scripts, and need no hash. The report-only copy also drops 'unsafe-inline' for styles, to show what is left to tighten.
Cloudflare static assets match paths case-sensitively, and component pages are written as /components/Button. _redirects sends each component's lower-case and kebab-case address (/components/textfield, /components/text-field) to the real page (/components/TextField), and /guide to /guide/getting-started, which has no index page. The dev server answers every path with the app shell and resolves routes in the browser, so these are production-only problems.
wrangler.jsonc describes a Worker named eos-site that serves docs/.vitepress/dist as static assets. Unknown paths get VitePress's 404.html. The Worker uses the custom domain eos.dame.gg, and Cloudflare creates the DNS record and certificate on deploy.
.github/actions/verify/action.yml: the shared steps. It checks out Dame-G/eos beside the site, builds the library, installs the site, then runs knip, the type check, the docs build, the tests, pages:check --all (axe, 404, console and Content-Security-Policy checks on full pages, with the built _headers policy applied: desktop in the light and dark scheme, phone in light). Server rendering of every component is checked in the library (pnpm ssr). CI and Deploy both call it; with full: false it skips knip and the tests and checks only a sample of pages. The library's Site check workflow calls it too, against each library pull request..github/workflows/ci.yml: on pull requests, runs every gate against the library's main. No deploy..github/workflows/deploy.yml: runs on every push to main and on demand from the Actions tab. It builds against the latest released library (see above) and checks a sample of pages (full: false, since the pull request ran everything), then runs wrangler deploy. It needs the repository secrets CLOUDFLARE_API_TOKEN and CLOUDFLARE_ACCOUNT_ID. To deploy from your machine instead, run pnpm docs:build and pnpm deploy.