English · Türkçe
A custom new-tab / start page built from a hand-drawn notebook sketch. Vanilla HTML, CSS and JavaScript — no build step, no dependencies.
- Live time, click to flip between 12-hour and 24-hour formats
- Five visual themes: Minimal, Outline, Glow, Gradient, Glass
- Custom colour with opacity (
rgbavia a hex picker + opacity slider) - Blur slider (applied to the text only — the glass panel stays sharp)
- Size slider (50–200% of the responsive base font-size)
- Outline width slider (only shown when the Outline theme is selected)
- The Glass theme has a tint palette (six soft colours)
- Three default engines (Google, DuckDuckGo, Bing); switch by clicking icons
or pressing
Shift+1…Shift+4 - Engine changes from icons / shortcuts are transient — the persisted default (set in the settings panel) is untouched and restored on reload
- 15 built-in site
!bangsà la DuckDuckGo:!yt!gh!w!so!r!maps!img!mdn!npm!a!tw!tr!g!ddg!b - Category search mode:
!work catsfilters items inside a category, with live suggestions as you type - Hidden categories are searchable but don't render as cards
- Add / rename / remove / reorder categories and the sites inside them from the settings menu (accordion editor with an item-count badge)
- Cards-per-row preference in settings (3 / 4 / 5 / 6)
- Icons are real site favicons (DuckDuckGo's icon service) with an emoji fallback when the favicon fails to load
- Cards scroll internally when a category has more than five items
- Four types, switchable from settings:
- Waves — animated SVG layers drifting slowly (respects
prefers-reduced-motion) - Solid colour — colour picker
- Image / GIF — paste a URL or upload a local file
- Video — paste a URL or upload a local file
- Waves — animated SVG layers drifting slowly (respects
- Uploaded media is stored in IndexedDB (localStorage isn't big enough for video). "Reset settings" clears uploads too.
- Optional blur slider for image / video backgrounds (no zoom-in — the blurred edges just fade into the page colour)
- Real glassmorphism on cards, search bar, settings panel and the search
suggestion dropdown —
backdrop-filter: blur() saturate(), a light-catching border, layered shadows, and a subtle lift on hover - Search bar is fully transparent (outline + text only) when unfocused and turns into glass on hover / focus
- Cursor light follows the mouse — white-ish in dark mode, dark-ish in light mode
- Gear icon rotates on hover; scrollbars are theme-aware
- Slides in from the left, taking
clamp(340px, 32%, 440px)of the viewport and squashing the rest of the page to make room - Sections: General, Fonts, Background, Components, Categories, Misc — each is a collapsible drawer; open / closed state is remembered across reloads
- Components drawer — show / hide the clock, search bar, categories and the theme button so only the gear remains if you want a minimal page
- Config mode:
Single(one shared config) orDual(clock, fonts and background stored per theme — switching dark ↔ light swaps them) - Backup: export settings as JSON (or settings + uploaded media); import to restore on another browser / device
- Per-component font choice (
System/Serif/Mono/Rounded) for the clock, the search bar and the cards — combine freely with the clock themes - "Reset settings" returns everything to defaults and wipes uploaded media
- Every setting persists in
localStorageunder thehp.prefix - Uploaded background media persists in IndexedDB (
hp-files) - The active search engine for the session resets to the saved default on each reload
No build, no dependencies. Just open index.html in your browser:
git clone https://github.com/<you>/<this-repo>.git
cd <this-repo>
xdg-open index.html # or double-click in your file managerTo use it as your actual home / new-tab page, point your browser at the
file://…/index.html path, or host the folder on GitHub Pages and use that
URL instead.
- HTML5
- CSS3 — custom properties for theming,
backdrop-filter,clamp(), CSS animations - Vanilla JavaScript — no framework, no bundler, no transpiler
localStoragefor settings,IndexedDBfor uploaded media
The only runtime network call is the optional fetch to
icons.duckduckgo.com for favicons; that fails gracefully to emoji.
.
├── index.html markup
├── css/style.css all styles
├── js/main.js all behaviour (single file)
├── SPEC.md detailed spec (Turkish), transcribed from the sketch
├── sketches/ original notebook photos
└── README.md
The project began as three pages of pencil sketches in a notebook — layout, components, and a list of eight visual-polish ideas (gear hover-spin, glassy components, transparent unfocused search bar, cursor glow, …).
Development was done iteratively in the terminal with Claude Code, one stage at a time, with the result reviewed in the browser between stages:
- Skeleton & base layout — clock, search bar with engine icons, category cards, dark / light theming via CSS custom properties
- Settings menu — slide-in panel that squashes the page, a small pub/sub settings store keeping inline controls and the panel in sync
- Category search & clock styles —
!bangscoping in category mode, autocomplete suggestions, multiple clock themes, scrollable cards - Visual polish (the eight items) — glassmorphism, transparent unfocused search bar, cursor glow, per-component fonts, item glow, animations
- Configurable background — animated SVG waves, solid colour, image or video by URL or file upload (IndexedDB)
- Favicons & keyboard shortcuts — real site icons with fallback,
Shift+1–4for transient engine switching - Category editor — add / remove / reorder categories and items from settings; later turned into a collapsible accordion
A few features grew beyond the original sketch as ideas surfaced:
configurable glass tint palette, custom site !bangs, clock colour with
opacity, background blur slider, item-count badges, theme-aware
scrollbars, …
SPEC.md is kept in sync with the implementation and is a good companion
read.
| Page 1 — main layout | Page 2 — cards & settings | Page 3 — visual ideas |
|---|---|---|
![]() |
![]() |
![]() |
MIT — do whatever you want, just keep the notice.


