liquid-glass

Apple Liquid Glass design system. Use when building UI with translucent, depth-aware glass morphism following Apple's design language. Provides CSS tokens, component patterns, dark/light mode, and animation specs.

15 stars

Best use case

liquid-glass is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Apple Liquid Glass design system. Use when building UI with translucent, depth-aware glass morphism following Apple's design language. Provides CSS tokens, component patterns, dark/light mode, and animation specs.

Teams using liquid-glass should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/liquid-glass/SKILL.md --create-dirs "https://raw.githubusercontent.com/ifiokjr/oh-pi/main/packages/skills/skills/liquid-glass/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/liquid-glass/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How liquid-glass Compares

Feature / Agentliquid-glassStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Apple Liquid Glass design system. Use when building UI with translucent, depth-aware glass morphism following Apple's design language. Provides CSS tokens, component patterns, dark/light mode, and animation specs.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Liquid Glass Design System

Apple-inspired translucent glass UI with depth, refraction, and ambient light response.

## Core Principles

1. **Translucency** — Surfaces reveal layered content beneath via backdrop blur
2. **Depth** — Elements float on distinct z-layers with realistic shadows
3. **Ambient Response** — Glass tints shift based on underlying content color
4. **Minimal Chrome** — Borders are subtle; shape and blur define boundaries
5. **Motion** — Transitions feel physical: spring-based, with inertia

## Usage

Import the token file in your CSS:

```css
@import "references/tokens.css";
```

## CSS Tokens Reference

All tokens are defined in `references/tokens.css`. Key categories:

| Category          | Prefix            | Example                |
| ----------------- | ----------------- | ---------------------- |
| Glass backgrounds | `--lg-bg-*`       | `--lg-bg-primary`      |
| Blur              | `--lg-blur-*`     | `--lg-blur-md`         |
| Borders           | `--lg-border-*`   | `--lg-border-color`    |
| Shadows           | `--lg-shadow-*`   | `--lg-shadow-elevated` |
| Radius            | `--lg-radius-*`   | `--lg-radius-lg`       |
| Animation         | `--lg-duration-*` | `--lg-duration-normal` |

## Component Patterns

### Glass Card

```css
.glass-card {
	background: var(--lg-bg-primary);
	backdrop-filter: blur(var(--lg-blur-md));
	-webkit-backdrop-filter: blur(var(--lg-blur-md));
	border: 1px solid var(--lg-border-color);
	border-radius: var(--lg-radius-lg);
	box-shadow: var(--lg-shadow-elevated);
	transition: transform var(--lg-duration-normal) var(--lg-easing-spring);
}

.glass-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--lg-shadow-high);
}
```

### Glass Toolbar

```css
.glass-toolbar {
	background: var(--lg-bg-toolbar);
	backdrop-filter: blur(var(--lg-blur-lg)) saturate(var(--lg-saturate));
	-webkit-backdrop-filter: blur(var(--lg-blur-lg)) saturate(var(--lg-saturate));
	border-bottom: 1px solid var(--lg-border-subtle);
}
```

### Glass Button

```css
.glass-btn {
	background: var(--lg-bg-interactive);
	backdrop-filter: blur(var(--lg-blur-sm));
	border: 1px solid var(--lg-border-color);
	border-radius: var(--lg-radius-md);
	transition: all var(--lg-duration-fast) var(--lg-easing-spring);
}

.glass-btn:active {
	transform: scale(0.97);
	background: var(--lg-bg-pressed);
}
```

### Glass Modal Overlay

```css
.glass-overlay {
	background: var(--lg-bg-scrim);
	backdrop-filter: blur(var(--lg-blur-xl));
}

.glass-modal {
	background: var(--lg-bg-elevated);
	border: 1px solid var(--lg-border-color);
	border-radius: var(--lg-radius-xl);
	box-shadow: var(--lg-shadow-high);
}
```

## Dark / Light Mode

Tokens auto-switch via `prefers-color-scheme`. Light mode uses white-tinted glass; dark mode uses
dark-tinted glass with higher blur to maintain readability.

```css
/* Force a mode on a subtree */
.light-glass {
	color-scheme: light;
}
.dark-glass {
	color-scheme: dark;
}
```

## Animations

Use spring-based easing for physical feel:

```css
/* Entry */
@keyframes glass-enter {
	from {
		opacity: 0;
		transform: scale(0.95) translateY(8px);
	}
	to {
		opacity: 1;
		transform: scale(1) translateY(0);
	}
}

.glass-animate-in {
	animation: glass-enter var(--lg-duration-normal) var(--lg-easing-spring) both;
}
```

## Accessibility

- Ensure `contrast-ratio ≥ 4.5:1` for text over glass surfaces
- Respect `prefers-reduced-motion` — disable blur animations, use opacity-only transitions
- Provide `prefers-contrast: high` overrides that replace translucent backgrounds with solid ones

Related Skills

glassmorphism

15
from ifiokjr/oh-pi

Glassmorphism design system skill. Use when building frosted-glass UI components with blur, transparency, and layered depth effects.

write-a-skill

15
from ifiokjr/oh-pi

Create new agent skills with proper structure, progressive disclosure, and bundled resources. Use when user wants to create, write, or build a new skill.

web-search

15
from ifiokjr/oh-pi

Web search via DuckDuckGo. Use when the user needs to look up current information online.

web-fetch

15
from ifiokjr/oh-pi

Fetch a web page and extract readable text content. Use when user needs to retrieve or read a web page.

rust-workspace-bootstrap

15
from ifiokjr/oh-pi

Scaffold a production-ready Rust workspace with knope changesets, devenv, and GitHub Actions CI/release workflows. Use when starting a new Rust project or monorepo.

request-refactor-plan

15
from ifiokjr/oh-pi

Create a detailed refactor plan with tiny commits via user interview, then file it as a GitHub issue. Use when user wants to plan a refactor, create a refactoring RFC, or break a refactor into safe incremental steps.

quick-setup

15
from ifiokjr/oh-pi

Detect project type and generate .pi/ configuration. Use when setting up pi for a new project or when user asks to initialize pi config.

pwsh

15
from ifiokjr/oh-pi

PowerShell syntax reference — cmdlets, objects, pipelines, filtering, comparison operators, and Bash-to-PowerShell command equivalents

nushell

15
from ifiokjr/oh-pi

Nushell syntax reference for shell commands — variables, pipelines, tables, custom commands, control flow, Bash-to-Nu equivalents, and common gotchas

neubrutalism

15
from ifiokjr/oh-pi

Neubrutalism design system skill. Use when building bold UI with thick borders, offset solid shadows, high saturation colors, and minimal border radius.

improve-codebase-architecture

15
from ifiokjr/oh-pi

Explore a codebase to find opportunities for architectural improvement, focusing on making the codebase more testable by deepening shallow modules. Use when user wants to improve architecture, find refactoring opportunities, consolidate tightly-coupled modules, or make a codebase more AI-navigable.

grill-me

15
from ifiokjr/oh-pi

Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions "grill me".