Add layouts, Tailwind pipeline, CI/CD workflows, and resume content

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
emil
2026-04-30 00:53:24 +03:00
co-authored by Claude Sonnet 4.6
parent 71b1117e9d
commit c1c64b8345
23 changed files with 552 additions and 10 deletions
+42 -1
View File
@@ -1 +1,42 @@
['main ]\n pull_request:\n branches: [ main ]\n\njobs:\n build:\n runs-on: ubuntu-latest\n steps:\n - name: Checkout repository\n uses: actions/checkout@v4\n\n - name: Set up Node.js\n uses: actions/setup-node@v4\n with:\n node-version: \'20\'\n\n - name: Install dependencies\n run: npm ci\n\n - name: Install markdownlint and HTMLHint\n run: npm install -D markdownlint-cli htmlhint\n\n - name: Lint markdown files\n run: npx markdownlint "**/*.md" --config .markdownlint.json || echo "No markdownlint config skipping"\n\n - name: Lint generated HTML (if any)\n run: npx htmlhint "**/public/**/*.html" || echo "No HTML to lint yet"\n\n - name: Build CSS\n run: npm run build:css\n\n - name: Build site with Hugo\n run: npm run build\n\n - name: Verify Hugo output exists\n run: |\n if [ ! -d "public'] on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install dependencies
run: npm ci
- name: Install markdownlint and HTMLHint
run: npm install -D markdownlint-cli htmlhint
- name: Lint markdown files
run: npx markdownlint "**/*.md" --config .markdownlint.json || echo "No markdownlint config skipping"
- name: Lint generated HTML (if any)
run: npx htmlhint "**/public/**/*.html" || echo "No HTML to lint yet"
- name: Build CSS
run: npm run build:css
- name: Build site with Hugo
run: npm run build
- name: Verify Hugo output exists
run: |
if [ ! -d "public" ]; then
echo "public/ not found"
exit 1
fi
+38 -1
View File
@@ -1 +1,38 @@
["main ] # Build on pushes to main\n\njobs:\n build-deploy:\n runs-on: ubuntu-latest\n steps:\n - name: Checkout repository\n uses: actions/checkout@v4\n\n - name: Setup Hugo\n uses: peaceiris/actions-hugo@v2\n with:\n hugo-version: 'latest'\n\n - name: Set up Node.js for Tailwindcss\n uses: actions/setup-node@v4\n with:\n node-version: '20'\n\n - name: Install dependencies\n run: npm install\n\n - name: Build CSS asset\n run: npm run build:css\n\n - name: Build Hugo site\n run: hugo --minify\n\n - name: Deploy to GitHub Pages\n uses: peaceiris/actions-gh-pages@v3\n with:\n github_pages_branch: gh-pages\n keep_files: false\n force_orphan: true\n commit_message: Deploy Hugo site"] on:
push:
branches: [main]
jobs:
build-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Hugo
uses: peaceiris/actions-hugo@v2
with:
hugo-version: 'latest'
- name: Set up Node.js for Tailwindcss
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install dependencies
run: npm ci
- name: Build CSS asset
run: npm run build:css
- name: Build Hugo site
run: hugo --minify
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
github_pages_branch: gh-pages
keep_files: false
force_orphan: true
commit_message: Deploy Hugo site
+2 -4
View File
@@ -9,7 +9,7 @@ node_modules/
# Hugo # Hugo
*.log *.log
*.patch *.patch
gtags refractor .hugo_build.lock
# OS & editor artifacts # OS & editor artifacts
.DS_Store .DS_Store
@@ -20,6 +20,4 @@ gtags refractor
# Tailwind / PostCSS caches # Tailwind / PostCSS caches
/.cache/ /.cache/
/.cache/ assets/css/main.css
tailwind.css
main.css
+1
View File
@@ -0,0 +1 @@
{\"repoUrl\": \"file:///home/emil/Desktop/Coding/AI/UI_test\"}
+17
View File
@@ -0,0 +1,17 @@
# IMPORTANT Rules
Always be kind. Prioritize user well-being.
# Code Quality Principles
Write clear, concise, and efficient code. Avoid unnecessary complexity.
# Coding Style Preferences
Use consistent 2-space indentation. Use descriptive variable names. Avoid trailing whitespace.
# Architecture Principles
Favor modular design. Consider scalability early. Prefer simplicity when possible.
# Development Workflow
Use Git for version control. Write descriptive commit messages. Use pull requests. Run tests before merging.
# Technical Preferences
Use TypeScript for type safety. Prefer REST over GraphQL for simplicity. Use PostgreSQL for relational data. Use Redis for caching. Use Docker for containerization.
+49
View File
@@ -0,0 +1,49 @@
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Project Overview
Hugo static resume website for Emil Shanayev (DevOps & Backend Engineer), styled with Tailwind CSS 3.x and deployed to GitHub Pages via GitHub Actions.
## Commands
```bash
# Local dev server (watches for changes)
hugo server
# Compile Tailwind CSS only
npm run build:css
# Full production build (CSS + Hugo minified)
npm run build
```
CSS must be compiled before Hugo can use it — `npm run build` handles this in the correct order.
## Architecture
**Hugo + PostCSS pipeline:**
- `assets/css/tailwind.css` — Tailwind entry point (source); processed by PostCSS → `assets/css/main.css` (generated, not committed)
- `tailwind.config.js` — content glob scans `**/*.{html,js,ts,jsx,md,go,rs}`; dark mode via `class`; custom color palette under `primary`, `secondary`, `dark`, `bg`
- `layouts/` — Hugo HTML templates (currently `_default/` only)
- `content/` — Markdown pages; `_index.md` is the homepage resume content (written in Russian)
- `config.toml` — Hugo site config (author, description, menu entries)
**CI/CD (`.github/workflows/`):**
- `ci.yml` — runs on PRs to `main`: installs deps, lints Markdown (`markdownlint`) and generated HTML (`htmlhint`), then builds
- `deploy.yml` — runs on push to `main`: builds site and pushes `public/` to `gh-pages` branch via `peaceiris/actions-gh-pages`
**Utility directories:**
- `core/user/` — user identity and preference notes consumed by AI tooling
- `templates/` — blank identity/preference templates
- `.pi/` — pi-agent settings (repo URL reference)
## Style Preferences
- 2-space indentation
- Descriptive variable names, no trailing whitespace
- TypeScript preferred for any scripting; REST over GraphQL; PostgreSQL/Redis for data
+97
View File
@@ -0,0 +1,97 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
@layer base {
body {
background-image: radial-gradient(rgb(30 41 59 / 0.45) 1px, transparent 1px);
background-size: 28px 28px;
}
}
@layer components {
/* Section header cards */
.resume-content h2 {
font-size: 0.68rem !important;
font-weight: 700 !important;
text-transform: uppercase;
letter-spacing: 0.16em;
color: rgb(96 165 250) !important;
margin-top: 3rem !important;
margin-bottom: 1.25rem !important;
padding: 0.55rem 1rem;
background: rgb(15 23 42 / 0.8);
border-left: 3px solid rgb(96 165 250);
border-radius: 0 0.375rem 0.375rem 0;
margin-left: -1rem;
box-shadow: -4px 0 24px rgb(96 165 250 / 0.08), inset 0 0 0 1px rgb(96 165 250 / 0.06);
}
.resume-content h3 {
font-size: 0.9rem !important;
font-weight: 600 !important;
color: rgb(226 232 240) !important;
margin-top: 1.25rem !important;
margin-bottom: 0.25rem !important;
}
.resume-content p {
color: rgb(148 163 184);
line-height: 1.75;
}
.resume-content li {
color: rgb(148 163 184);
}
.resume-content li::marker {
color: rgb(96 165 250) !important;
}
.resume-content strong {
color: rgb(226 232 240) !important;
font-weight: 600 !important;
}
.resume-content a {
color: rgb(96 165 250) !important;
text-decoration: none !important;
}
.resume-content a:hover {
text-decoration: underline !important;
}
.resume-content hr {
border-color: rgb(30 41 59 / 0.5) !important;
margin-top: 0.5rem !important;
margin-bottom: 0.5rem !important;
}
.skills-grid {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
margin: 0.75rem 0 1.5rem;
}
.skills-grid span {
padding: 0.25rem 0.75rem;
border-radius: 9999px;
font-size: 0.72rem;
font-family: ui-monospace, monospace;
background: rgb(96 165 250 / 0.1);
color: rgb(96 165 250);
border: 1px solid rgb(96 165 250 / 0.25);
white-space: nowrap;
}
.resume-content code {
color: rgb(147 197 253) !important;
background: rgb(15 23 42) !important;
padding: 0.1em 0.4em !important;
border-radius: 0.25rem !important;
font-size: 0.85em !important;
}
}
+10 -1
View File
@@ -1 +1,10 @@
[['menu.main]]\n name = "Resume"\n url = "/resume/', 'weight = 1\n\n[[menu.main]]\n name = "About"\n url = "/about/', 'weight = 2\n\n[params]\n author = "Emil Shanayev"\n description = "DevOps & Backend Engineer"\n keywords = ["DevOps', 'Backend', 'Go', 'Tailwind', 'Resume']] baseURL = "https://emil28092005.github.io/"
languageCode = "ru"
title = "Emil Shanayev"
[params]
author = "Emil Shanayev"
description = "DevOps & Backend Engineer"
keywords = ["DevOps", "Backend", "Go", "Tailwind", "Resume"]
github = "https://github.com/emil28092005"
email = "emil28092005@gmail.com"
+58 -1
View File
@@ -1 +1,58 @@
['GitHub](https://github.com/emil28092005) \n\n--- \n\n## Обо мне \nМолодой разработчик с глубокими знаниями в backend‑разработке и DevOps‑инженерии. Специализируюсь на Python/FastAPI, контейнеризации (Docker, Kubernetes) и Linux‑системах. Имею практический опыт проектирования архитектур, работы с CI/CD пайплайнами и управления инфраструктурой. Предпочитаю командную работу, обладаю лидерскими качествами и умею находить творческие решения сложных задач.\n\n--- \n\n## Ключевые навыки \n\n### Backend & Web Development \n- **Python**: FastAPI, asyncio, REST API \n- **Go**: микросервисы, высоконагруженные сервисы \n- **JavaScript/TypeScript**: async‑код, базовый React \n- **SQL**: PostgreSQL, Redis, SQLite – проектирование схем, оптимизация запросов \n- **HTML / CSS**: Tailwind CSS – утилитарный стиль, быстрый UI \n\n### DevOps & Infrastructure \n- **Docker**: контейнеризация приложений, `docker-compose` \n- **Kubernetes**: развертывание, авто‑сcaling, Helm‑чарты \n- **CI/CD**: GitHub Actions, Jenkins – автоматизация тестов и деплоя \n- **Linux**: Ubuntu, Debian, Manjaro; администрирование серверов, Bash‑скрипты \n- **CI/CD pipelines**: сборка образов, публикация в Harbor \n\n### Дополнительные компетенции \n- **Version Control**: Git, GitHubActions \n- **CI/CD**: Harbor – хранение образов \n- **Системное администрирование**: VPS, самостоятельные сервисы \n- **Java, C#**: базовые знания \n- **Agile / Scrum**: управление проектами, коммуникация с командой \n\n--- \n\n## Образование \n\n**Университет Иннополис** – Программа Data Structures and Artificial Intelligence (DSAI) \n*2 года обучения*, факультатив *Product Management* – отличная оценка \n\n--- \n\n## Профессиональный опыт \n\n**Самостоятельные проекты** \n- Разработка backend‑приложений на **Python/FastAPI** с асинхронным программированием \n- Контейнеризация в **Docker**, оркестрация в **Kubernetes** \n- Настройка **CI/CD**‑пайплайнов с **GitHub Actions** и **Jenkins** \n- Администрирование **Linux‑серверов** (Debian, Ubuntu) \n\n**Командный опыт** \n- Вузовские учебные проекты – лидерство в небольших командах \n- Agile‑процессы, Scrum‑ролики \n\n--- \n\n## Дополнительно \n\n- **Обучение**: постоянное изучение документаций, YouTube‑курсов, Perplexity AI \n- **Открытый исходный код**: работа с инструментами DevOps‑сферы \n- **Командная работа**: наставничество, менторинг \n\n--- \n\n*Продолжаю развиваться в направлении DevOps и облачных технологий, активно экспериментирую с новыми подходами к инфраструктуре и автоматизации.*'] ---
title: "Emil Shanayev"
---
## Обо мне
Молодой разработчик с глубокими знаниями в backend‑разработке и DevOps‑инженерии. Специализируюсь на Python/FastAPI, контейнеризации (Docker, Kubernetes) и Linux‑системах. Имею практический опыт проектирования архитектур, работы с CI/CD пайплайнами и управления инфраструктурой. Предпочитаю командную работу, обладаю лидерскими качествами и умею находить творческие решения сложных задач.
---
## Ключевые навыки
### Backend & Web Development
{{< skills "Python · FastAPI · asyncio" "Go · микросервисы" "JavaScript / TypeScript" "PostgreSQL · Redis · SQLite" "Tailwind CSS" >}}
### DevOps & Infrastructure
{{< skills "Docker · Compose" "Kubernetes · Helm" "GitHub Actions · Jenkins" "Linux · Bash" "Harbor" >}}
### Дополнительные компетенции
{{< skills "Git · GitHub Actions" "Agile · Scrum" "Java · C#" "VPS · сервер‑администрирование" >}}
---
## Образование
**Университет Иннополис** – Программа Data Structures and Artificial Intelligence (DSAI)
*2 года обучения*, факультатив *Product Management* отличная оценка
---
## Профессиональный опыт
**Самостоятельные проекты**
- Разработка backend‑приложений на **Python/FastAPI** с асинхронным программированием
- Контейнеризация в **Docker**, оркестрация в **Kubernetes**
- Настройка **CI/CD**‑пайплайнов с **GitHub Actions** и **Jenkins**
- Администрирование **Linux‑серверов** (Debian, Ubuntu)
**Командный опыт**
- Вузовские учебные проекты – лидерство в небольших командах
- Agile‑процессы, Scrum‑методики
---
## Дополнительно
- **Обучение**: постоянное изучение документаций, YouTube‑курсов, Perplexity AI
- **Открытый исходный код**: работа с инструментами DevOps‑сферы
- **Командная работа**: наставничество, менторинг
---
*Продолжаю развиваться в направлении DevOps и облачных технологий, активно экспериментирую с новыми подходами к инфраструктуре и автоматизации.*
+5 -1
View File
@@ -1 +1,5 @@
['DevOps', 'Backend', 'Go'] ---
title: "DevOps Engineer"
tags: ["DevOps", "Backend", "Go"]
draft: true
---
+1
View File
@@ -0,0 +1 @@
# Identity Template
+1
View File
@@ -0,0 +1 @@
# Preferences Template
+6
View File
@@ -0,0 +1,6 @@
- IMPORTANT Rules: Always be kind. Prioritize user well-being.
- Code Quality Principles: Write clear, concise, and efficient code. Avoid unnecessary complexity.
- Coding Style Preferences: 2-space indentation, descriptive variable names.
- Architecture Principles: Modular design, scalability focus.
- Development Workflow: Git + PRs + descriptive commits + tests.
- Technical Preferences: TypeScript, REST, PostgreSQL, Redis, Docker.
+112
View File
@@ -0,0 +1,112 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ if .IsHome }}{{ .Site.Params.author }} — {{ .Site.Params.description }}{{ else }}{{ .Title }} | {{ .Site.Params.author }}{{ end }}</title>
{{ $css := resources.Get "css/main.css" }}
{{ if $css }}<link rel="stylesheet" href="{{ $css.RelPermalink }}">{{ end }}
</head>
<body class="bg-slate-950 text-slate-100 min-h-screen">
<div class="h-px bg-gradient-to-r from-blue-600 via-cyan-400 to-blue-600"></div>
<nav class="sticky top-0 z-10 bg-slate-950/80 backdrop-blur border-b border-slate-800/60 px-8 py-3 flex items-center justify-between">
<span class="text-sm font-mono text-slate-500 tracking-wide">{{ .Site.Params.author }}</span>
<button id="pdf-btn" onclick="downloadPDF()"
class="text-xs text-slate-500 hover:text-white transition-colors px-3 py-1.5 rounded border border-slate-700 hover:border-slate-500 cursor-pointer">
Download PDF
</button>
</nav>
<main id="resume-main" class="max-w-3xl mx-auto px-6 py-14">
{{ block "main" . }}{{ end }}
</main>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2pdf.js/0.10.1/html2pdf.bundle.min.js" defer></script>
<script>
function downloadPDF() {
const btn = document.getElementById('pdf-btn');
btn.textContent = 'Generating…';
btn.disabled = true;
html2pdf().set({
margin: [14, 18, 14, 18],
filename: 'Emil_Shanayev_Resume.pdf',
image: { type: 'png' },
html2canvas: {
scale: 2.5,
useCORS: true,
onclone: (doc) => {
// Inject a stylesheet — inline styles lose to !important in our CSS,
// but a later <style> tag wins the cascade.
const style = doc.createElement('style');
style.textContent = `
body {
background: #ffffff !important;
background-image: none !important;
color: #0f172a !important;
min-height: auto !important;
}
#resume-main {
max-width: none !important;
margin: 0 !important;
padding: 0 !important;
background: #ffffff !important;
}
h1 {
background-image: none !important;
-webkit-background-clip: unset !important;
background-clip: unset !important;
-webkit-text-fill-color: #0f172a !important;
color: #0f172a !important;
}
header { border-color: #e2e8f0 !important; }
header p { color: #475569 !important; }
header span {
background: #eff6ff !important;
border-color: #bfdbfe !important;
color: #1d4ed8 !important;
}
header a {
background: transparent !important;
border: none !important;
color: #1d4ed8 !important;
padding: 0 !important;
font-size: 0.8rem !important;
}
.resume-content h2 {
color: #1d4ed8 !important;
background: #eff6ff !important;
border-color: #1d4ed8 !important;
box-shadow: none !important;
margin-left: 0 !important;
border-radius: 0.25rem !important;
}
.resume-content h3 { color: #1e293b !important; }
.resume-content p { color: #334155 !important; }
.resume-content li { color: #334155 !important; }
.resume-content li::marker { color: #1d4ed8 !important; }
.resume-content strong { color: #0f172a !important; }
.resume-content a { color: #1d4ed8 !important; }
.resume-content code { background: #f1f5f9 !important; color: #1d4ed8 !important; }
.resume-content hr { border-color: #e2e8f0 !important; }
.skills-grid span {
background: #eff6ff !important;
border-color: #bfdbfe !important;
color: #1d4ed8 !important;
}
`;
doc.head.appendChild(style);
}
},
jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrait' },
pagebreak: { mode: 'css' }
})
.from(document.getElementById('resume-main'))
.save()
.then(() => {
btn.textContent = 'Download PDF';
btn.disabled = false;
});
}
</script>
</body>
</html>
+6
View File
@@ -0,0 +1,6 @@
{{ define "main" }}
<article class="prose prose-invert max-w-none">
<h1 class="text-3xl font-bold mb-6">{{ .Title }}</h1>
{{ .Content }}
</article>
{{ end }}
+31
View File
@@ -0,0 +1,31 @@
{{ define "main" }}
<header class="mb-14 pb-10 border-b border-slate-800">
<div class="flex flex-wrap gap-2 mb-5">
<span class="px-2.5 py-1 rounded-full text-xs font-mono bg-blue-500/10 text-blue-400 border border-blue-500/20">DevOps</span>
<span class="px-2.5 py-1 rounded-full text-xs font-mono bg-blue-500/10 text-blue-400 border border-blue-500/20">Backend</span>
<span class="px-2.5 py-1 rounded-full text-xs font-mono bg-blue-500/10 text-blue-400 border border-blue-500/20">Go · Python</span>
<span class="px-2.5 py-1 rounded-full text-xs font-mono bg-blue-500/10 text-blue-400 border border-blue-500/20">Kubernetes</span>
</div>
<h1 class="text-5xl font-bold tracking-tight bg-gradient-to-br from-white via-slate-200 to-slate-500 bg-clip-text text-transparent">
{{ .Site.Params.author }}
</h1>
<p class="mt-3 text-slate-400 text-lg">{{ .Site.Params.description }}</p>
<div class="mt-6 flex flex-wrap gap-3">
{{ if .Site.Params.github }}
<a href="{{ .Site.Params.github }}"
class="inline-flex items-center gap-2 px-4 py-2 rounded-lg bg-slate-800 hover:bg-slate-700 text-sm text-slate-300 hover:text-white transition-all border border-slate-700">
GitHub ↗
</a>
{{ end }}
{{ if .Site.Params.email }}
<a href="mailto:{{ .Site.Params.email }}"
class="inline-flex items-center gap-2 px-4 py-2 rounded-lg bg-slate-800/50 hover:bg-slate-700 text-sm text-slate-400 hover:text-white transition-all border border-slate-700/60">
{{ .Site.Params.email }}
</a>
{{ end }}
</div>
</header>
<article class="resume-content prose prose-invert max-w-none">
{{ .Content }}
</article>
{{ end }}
+5
View File
@@ -0,0 +1,5 @@
<div class="skills-grid">
{{ range .Params }}
<span>{{ . }}</span>
{{ end }}
</div>
+28
View File
@@ -8,6 +8,7 @@
"name": "resume-website", "name": "resume-website",
"version": "1.0.0", "version": "1.0.0",
"devDependencies": { "devDependencies": {
"@tailwindcss/typography": "^0.5.19",
"autoprefixer": "^10.5.0", "autoprefixer": "^10.5.0",
"postcss": "^8.5.12", "postcss": "^8.5.12",
"postcss-cli": "^11.0.1", "postcss-cli": "^11.0.1",
@@ -104,6 +105,33 @@
"node": ">= 8" "node": ">= 8"
} }
}, },
"node_modules/@tailwindcss/typography": {
"version": "0.5.19",
"resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.19.tgz",
"integrity": "sha512-w31dd8HOx3k9vPtcQh5QHP9GwKcgbMp87j58qi6xgiBnFFtKEAgCWnDw4qUT8aHwkCp8bKvb/KGKWWHedP0AAg==",
"dev": true,
"license": "MIT",
"dependencies": {
"postcss-selector-parser": "6.0.10"
},
"peerDependencies": {
"tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1"
}
},
"node_modules/@tailwindcss/typography/node_modules/postcss-selector-parser": {
"version": "6.0.10",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz",
"integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==",
"dev": true,
"license": "MIT",
"dependencies": {
"cssesc": "^3.0.0",
"util-deprecate": "^1.0.2"
},
"engines": {
"node": ">=4"
}
},
"node_modules/ansi-regex": { "node_modules/ansi-regex": {
"version": "5.0.1", "version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+1
View File
@@ -7,6 +7,7 @@
"build": "npm run build:css && hugo --minify" "build": "npm run build:css && hugo --minify"
}, },
"devDependencies": { "devDependencies": {
"@tailwindcss/typography": "^0.5.19",
"autoprefixer": "^10.5.0", "autoprefixer": "^10.5.0",
"postcss": "^8.5.12", "postcss": "^8.5.12",
"postcss-cli": "^11.0.1", "postcss-cli": "^11.0.1",
+6
View File
@@ -0,0 +1,6 @@
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
}
+34 -1
View File
@@ -1 +1,34 @@
{'darkMode': 'class', 'content': ['**/*.{html,js,ts,jsx,md,go,rs}'], 'theme': {'extend': {'colors': {'primary': '#2563eb', 'secondary': '#112d44', 'dark': {'#0f172a': 100, '#1e293b': 200, '#334155': 300, '#475569': 400, '#607d8b': 500, '#304ffe': 600, '#24368a': 700, '#1d2951': 800, '#132743': 900}, 'bg': {'default': '#ffffff', 'primary': '#0f172a'}}, 'spacing': {'5': '1.25rem', '7': '1.75rem', '9': '2.25rem'}}}, 'plugins': []} /** @type {import('tailwindcss').Config} */
module.exports = {
darkMode: 'class',
content: ['./layouts/**/*.html', './content/**/*.md', './assets/**/*.{js,ts}'],
theme: {
extend: {
colors: {
primary: '#2563eb',
secondary: '#112d44',
dark: {
100: '#0f172a',
200: '#1e293b',
300: '#334155',
400: '#475569',
500: '#607d8b',
600: '#304ffe',
700: '#24368a',
800: '#1d2951',
900: '#132743',
},
bg: {
default: '#ffffff',
primary: '#0f172a',
},
},
spacing: {
'5': '1.25rem',
'7': '1.75rem',
'9': '2.25rem',
},
},
},
plugins: [require('@tailwindcss/typography')],
}
+1
View File
@@ -0,0 +1 @@
# Identity Template
+1
View File
@@ -0,0 +1 @@
# Preferences Template