From 7fd0ae8a6bc840eaf0c1c6bc80b0b06dd5383318 Mon Sep 17 00:00:00 2001 From: Nikita Pozdniakov Date: Wed, 29 Apr 2026 12:46:56 +0300 Subject: [PATCH] Add webtui, tailwind and biome --- astro.config.mjs | 8 +- biome.json | 34 ++ package.json | 8 +- src/layouts/Layout.astro | 16 + src/pages/demo.astro | 749 +++++++++++++++++++++++++++++++++++++++ src/pages/index.astro | 19 +- src/pages/ui.astro | 48 +++ src/styles/global.css | 15 + 8 files changed, 880 insertions(+), 17 deletions(-) create mode 100644 biome.json create mode 100644 src/layouts/Layout.astro create mode 100644 src/pages/demo.astro create mode 100644 src/pages/ui.astro create mode 100644 src/styles/global.css diff --git a/astro.config.mjs b/astro.config.mjs index e762ba5..a4034fb 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -1,5 +1,9 @@ // @ts-check import { defineConfig } from 'astro/config'; +import tailwindcss from '@tailwindcss/vite'; -// https://astro.build/config -export default defineConfig({}); +export default defineConfig({ + vite: { + plugins: [tailwindcss()] + } +}); \ No newline at end of file diff --git a/biome.json b/biome.json new file mode 100644 index 0000000..fe05d88 --- /dev/null +++ b/biome.json @@ -0,0 +1,34 @@ +{ + "$schema": "https://biomejs.dev/schemas/2.4.13/schema.json", + "vcs": { + "enabled": true, + "clientKind": "git", + "useIgnoreFile": true + }, + "files": { + "includes": ["**", "!!**/dist"] + }, + "formatter": { + "enabled": true, + "indentStyle": "tab" + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true + } + }, + "javascript": { + "formatter": { + "quoteStyle": "double" + } + }, + "assist": { + "enabled": true, + "actions": { + "source": { + "organizeImports": "on" + } + } + } +} diff --git a/package.json b/package.json index 9e2a993..46b5717 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,12 @@ "preinstall": "node ./scripts/enforce-pnpm.mjs" }, "dependencies": { - "astro": "^5.16.10" + "@tailwindcss/vite": "^4.2.4", + "@webtui/css": "^0.1.7", + "astro": "^6.1.8", + "tailwindcss": "^4.2.4" + }, + "devDependencies": { + "@biomejs/biome": "2.4.13" } } \ No newline at end of file diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro new file mode 100644 index 0000000..80907c2 --- /dev/null +++ b/src/layouts/Layout.astro @@ -0,0 +1,16 @@ +--- +import "../styles/global.css"; +--- + + + + + + + + NikitaPozd Dev + + + + + diff --git a/src/pages/demo.astro b/src/pages/demo.astro new file mode 100644 index 0000000..f2a4c72 --- /dev/null +++ b/src/pages/demo.astro @@ -0,0 +1,749 @@ +--- +// src/pages/index.astro +// Для полноценного проекта лучше вынести WebTUI-импорты в src/styles/global.css +// и подключить файл в root layout, но этот single-file макет можно сразу вставить +// в Astro для быстрого старта. + +const articles = [ + { + title: "Нативный light/dark без лишнего JS", + tag: "CSS / UI", + meta: "06.04.2026", + desc: "Разбор переключения темы, системных предпочтений и аккуратной деградации интерфейса.", + }, + { + title: "Astro + WebTUI: терминальный UI без боли", + tag: "ASTRO / WEBTUI", + meta: "02.04.2026", + desc: "Как подключить стили, разнести слои и не потерять читаемость в гибридном интерфейсе.", + }, + { + title: "React-архитектура для pet-проектов", + tag: "REACT / TS", + meta: "27.03.2026", + desc: "Минимальный, но живучий сетап: фичи, shared-слой, UI-кит и понятные контракты.", + }, +]; + +const projects = [ + { + title: "UI System", + type: "DESIGN SYSTEM", + status: "ONLINE", + desc: "Компоненты и паттерны для React / Solid с единым visual language.", + }, + { + title: "Lab Notes", + type: "BLOG", + status: "SYNCED", + desc: "Статьи, заметки и эксперименты по фронтенду, DX и интерфейсам.", + }, + { + title: "Experiments", + type: "PLAYGROUND", + status: "WIP", + desc: "Графика, WebGPU, 3D и интерактивные эксперименты.", + }, +]; + +const contacts = ["GitHub", "Telegram", "Email", "LinkedIn"]; +--- + + + + + + Никита Поздняков — Frontend Engineer + + + + +
+
+
+ +
+
+ +
+
ctOS / profile
+
nikitapozd.dev
+
+
+ + +
+ +
+
+
+
+
+
+ personal node / online +
+

Никита Поздняков

+

+ Фронтенд-разработчик. Делаю быстрые, аккуратные интерфейсы на React, + TypeScript, Next.js и Astro. Люблю дизайн-системы, терминальную эстетику и + чуть-чуть киберпанка. +

+
+ + +
+ +
+
Статьи013
+
Проекты008
+
Опыт с UI06+
+
+ +
+ + +
+
+ +
+
+
+ mission feed + active +
+
+
Собрать личный сайт с сильной визуальной системой
+
Показать статьи, проекты и стек без визуального шума
+
Смешать WebTUI и HUD Watch Dogs в современный лендинг
+
+
+ +
+
+ quick links + sync +
+ +
+
+
+ +
+
+
+
+
about.exe
+

Обо мне

+
+ profile +
+ +
+

+ Мне нравится делать интерфейсы, в которых есть структура, ритм и понятная + логика. Люблю, когда дизайн не спорит с контентом, а усиливает его. +

+

+ Этот макет опирается на спокойную структуру персонального сайта, но сверху + добавляет HUD-слои, статусы, терминальные компоненты и акцентные панели в + духе ctOS. +

+
+ +
+ {['Next.js', 'TypeScript', 'Design Systems', 'Astro', 'Accessibility', 'Motion'].map((item) => ( + {item} + ))} +
+
+ +
+
+
+
articles.log
+

Последние статьи

+
+ +
+ +
+ {articles.map((article) => ( +
+
+ {article.tag} + {article.meta} +
+

{article.title}

+

{article.desc}

+
+ ))} +
+
+
+ +
+
+
+
projects.map
+

Избранные проекты

+
+ 3 active nodes +
+ +
+ {projects.map((project) => ( +
+
+ {project.type} + {project.status} +
+

{project.title}

+

{project.desc}

+
+ open + +
+
+ ))} +
+
+ + +
+
+ + + + diff --git a/src/pages/index.astro b/src/pages/index.astro index d59f4f7..639fce5 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -1,16 +1,7 @@ --- +import Layout from "../layouts/Layout.astro"; +--- ---- - - - - - - - - Astro - - -

Nikita Pozd Main Site

- - + + + diff --git a/src/pages/ui.astro b/src/pages/ui.astro new file mode 100644 index 0000000..a715f9b --- /dev/null +++ b/src/pages/ui.astro @@ -0,0 +1,48 @@ +--- +import Layout from "../layouts/Layout.astro"; +--- + + +
+

Heading 1

+

Heading 2

+

Heading 3

+

Heading 4

+
Heading 5
+
Heading 6
+
+ Summary title +

Accordion content

+
+ + +
+

Are you sure you want to delete this?

+
+ + +
+
+
+ + +
+
+ + \ No newline at end of file diff --git a/src/styles/global.css b/src/styles/global.css new file mode 100644 index 0000000..e33475d --- /dev/null +++ b/src/styles/global.css @@ -0,0 +1,15 @@ +@layer theme, base, components, utilities; +@import "tailwindcss"; + +@import "@webtui/css/base.css" layer(base); + +/* utilities */ +@import "@webtui/css/utils/box.css" layer(utilities); + +/* components */ +@import "@webtui/css/components/typography.css" layer(components); + +@import "@webtui/css/components/button.css" layer(components); +@import '@webtui/css/components/accordion.css' layer(components); +@import '@webtui/css/components/dialog.css' layer(components); +