diff --git a/cli/build.zsh b/cli/build.zsh
index 4321c23..8f5a94f 100644
--- a/cli/build.zsh
+++ b/cli/build.zsh
@@ -11,6 +11,10 @@ cp ui/cast/index.html ../ui/cast/index.html
cp ui/cast/*.webp ../ui/cast/
deno bundle ui/cast/bind.ts ../ui/cast/bind.js
+mkdir ../ui/index
+cp ui/ismism.css ../ui/
+cp ui/index/index.html ../ui/index/index.html
+
cd ..
mkdir ui/json
cp json/*.json ui/json/
diff --git a/ismism.ts/ui/index/index.html b/ismism.ts/ui/index/index.html
new file mode 100644
index 0000000..e14da5f
--- /dev/null
+++ b/ismism.ts/ui/index/index.html
@@ -0,0 +1,58 @@
+
+
+
+
+ 主义主义 活动公示
+
+
+
+
+
+
+
+
+ h1 is here
+ h2 is here
+ h3 is here
+
+
+ main is here
+
+ p is here
+
+
code is here
+
+
a is here
+
+
ismist.cn is hereismist.cn is hereismist.cn is hereismist.cn is
+ hereismist.cn is
+ hereismist.cn is hereismist.cn is hereismist.cn is here
+
+
small is here
+
normal is here
+
large is here
+
+
+
+
+ article is here
+
+
+
+
+
+ article is here
+
+
+
+
diff --git a/ismism.ts/ui/ismism.css b/ismism.ts/ui/ismism.css
new file mode 100644
index 0000000..e07ebc2
--- /dev/null
+++ b/ismism.ts/ui/ismism.css
@@ -0,0 +1,115 @@
+:root {
+ --white: #fff;
+ --lightgray: #f1f1f1;
+ --gray: #9e9e9e;
+ --darkgray: #616161;
+ --black: #000;
+ --palered: #ffdddd;
+ --red: #f44336;
+ --amber: #ffc107;
+ --purple: #673ab7;
+ --small: 12px;
+ --normal: 15px;
+ --large: 18px;
+ --w-max: 1400px;
+ --w-min: 320px;
+ --w-max-main: 960px;
+}
+
+html {
+ box-sizing: border-box;
+}
+
+*,
+*::before,
+*::after {
+ box-sizing: inherit;
+}
+
+body {
+ margin: 0;
+ color: var(--black);
+ background: var(--lightgray);
+ font-family: sans-serif;
+ font-size: var(--normal);
+ line-height: 1.5;
+}
+
+h1,
+h2,
+h3 {
+ font-weight: 400;
+ margin: 10px 0;
+}
+
+h1 {
+ font-size: 36px
+}
+
+h2 {
+ font-size: 30px
+}
+
+h3 {
+ font-size: 24px
+}
+
+hr {
+ height: 0;
+ border: 0;
+ border-top: 1px solid #eee;
+ overflow: visible;
+ margin: 20px 0;
+}
+
+a {
+ color: inherit;
+ text-decoration: none;
+}
+
+a.link {
+ text-decoration: 1px underline;
+ text-underline-offset: 4px;
+}
+
+a.link:hover {
+ color: var(--amber);
+}
+
+code {
+ font-family: monospace;
+ font-size: 1em;
+}
+
+header {
+ padding-top: 32px;
+ padding-bottom: 16px;
+ min-width: var(--w-min);
+ max-width: var(--w-max);
+}
+
+div.main {
+ min-width: var(--w-min);
+ max-width: var(--w-max-main);
+ margin: 0 auto;
+ padding: 0;
+}
+
+article {
+ margin: 16px;
+ background: var(--white);
+ box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.2), 0 4px 20px 0 rgba(0, 0, 0, 0.19);
+}
+
+article>section {
+ padding: 0.01em 16px;
+ margin: 10px 0;
+}
+
+footer {
+ padding: 32px 16px;
+ margin-top: 16px;
+ color: var(--gray);
+ background: var(--darkgray);
+ text-align: center;
+}