Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions 404.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<!DOCTYPE html>
<html lang="en" data-theme="dark">
<head>
<meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1">
<title>404 — Tani CSS Framework</title>
<meta name="description" content="Tani 404 — page not found">
<link rel="stylesheet" href="./dist/css/tani.css">
<link rel="stylesheet" href="./assets/docs.css">
</head>
<body>
<header class="doc-header">
<a class="doc-brand" href="./index.html"><span class="logo-mark">T</span>Tani<b>.css</b></a>
<div class="doc-header-actions"><a class="doc-icon-btn" href="./index.html">Docs</a><a class="doc-icon-btn" href="https://github.com/TaniCSS/Tani" title="GitHub">&#9733;</a></div>
</header>
<main class="doc-page-wrap">

<div class="doc-404">
<div class="big">404</div>
<h2>Page not found</h2>
<p class="text-muted">The page you are looking for drifted into the void. Let us get you back.</p>
<div class="d-flex gap-3 mt-3">
<a class="btn btn-primary" href="./index.html">Back to docs</a>
<a class="btn btn-outline-primary" href="./index.html#playground">Open playground</a>
</div>
</div>
</main>
<footer class="doc-footer"><span>Tani CSS Framework — zero-JS, zero-build. MIT Licensed.</span><span><a href="./index.html">Docs</a> · <a href="https://github.com/TaniCSS/Tani">GitHub</a></span></footer>
<script src="./assets/docs.js"></script>
</body>
</html>
46 changes: 46 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Contributing to Tani

Thanks for your interest in improving Tani!

## Ground rules

1. **Additive by default** — new versions only add classes, never rename or remove existing ones.
2. **Zero-JS first** — prefer CSS-only mechanisms (`:checked`, `:target`, `:focus-within`, `<details>`, `<dialog>`) over scripts.
3. **Logical properties** — use `margin-inline`/`padding-block`/`inset-*` so RTL works for free.
4. **Respect reduced motion** — every new animation needs a `prefers-reduced-motion` story.
5. **One source of truth** — before adding a rule, search the stylesheet. If the selector already exists, extend it instead of appending a competing definition (duplicate definitions are how most of our historical bugs happened).

## Workflow

```bash
git clone https://github.com/TaniCSS/Tani.git
cd Tani
# open index.html in a browser — that's the whole toolchain
```

- Edit `dist/css/tani.css` (the single source file).
- Regenerate the minified build after changes:

```bash
python3 tools/minify.py dist/css/tani.css dist/css/tani.min.css
```

- Run the smoke test if you have Chrome/Chromium available (paths auto-detected):

```bash
python3 tests/smoke_selenium.py
```

## Submitting

1. Fork, then create a feature branch (`feat/my-component` or `fix/issue-123`).
2. Include a live demo built with Tani classes — screenshots are appreciated.
3. Keep PRs focused; one component/fix per PR.
4. Update `README.md` and `index.html` docs when you add user-facing classes.

## Reporting bugs

Open a [GitHub issue](https://github.com/TaniCSS/Tani/issues) with:
- the exact HTML/classes involved,
- browser + version,
- expected vs actual behavior.
Loading