美とブルータリズム:blakecrosley.comをその交差点でデザインした方法
blakecrosley.comは、カラーなし、グラデーションなし、イラストなし、装飾的要素なしでデザインしました。絶対的な黒(#000000)の上に白いタイポグラフィを配置し、5%、10%、40%、65%の不透明度レイヤーだけで視覚的ヒエラルキー全体を構成しています。サイトはLighthouseパフォーマンスで100/100を達成し、私が「誠実な美」と呼ぶものを実現しています。それは、構造的明快さと精密な職人技の融合です。1
TL;DR
デジタルデザインにおけるブルータリズムは、インターフェースを構造的誠実さまで削ぎ落とします。生のタイポグラフィ、可視化されたグリッド、最小限の装飾です。美はそこに洗練を加えます。調和のとれた色彩関係、精密なスペーシング、マイクロインタラクションです。最も魅力的な現代のプロダクト(Linear、Notion、Arc Browser)は、この交差点で機能しています。私はblakecrosley.comをこの同じ交差点で構築しました。この記事では、具体的なCSSの判断、何を取り除いたか、そしてなぜ誠実さと職人技の緊張関係がどちらか一方の原則だけよりも優れたインターフェースを生み出すのかを記録します。
私のデザインシステム:基盤としてのブルータリズム
カラー「非」パレット
多くのデザインシステムはカラーパレットから始まります。私のシステムはその不在から始まります。
:root {
--color-bg-dark: #000000;
--color-bg-elevated: #111111;
--color-bg-surface: #1a1a1a;
--color-text-primary: #ffffff;
--color-text-secondary: rgba(255,255,255,0.65);
--color-text-tertiary: rgba(255,255,255,0.4);
--color-border: rgba(255,255,255,0.1);
--color-border-subtle: rgba(255,255,255,0.05);
--color-accent: #ffffff;
}
ブランドカラーはありません。不透明度レベル以外のセマンティックカラーもありません。視覚的ヒエラルキー全体が4つの透明度ティアで機能しています。100%(プライマリ)、65%(セカンダリ)、40%(ターシャリ)、10%(構造的ボーダー)です。これは原則としてブルータリストです。素材(暗闇の上の光)が装飾されるのではなく、直接使用されています。2
この判断は意図的なものでした。16のプロダクトデザインスタディの中で、私が最も尊敬するプロダクト(Linear、Vercel、Raycast)が抑制されたパレットを使用し、タイポグラフィとスペーシングでヒエラルキーの仕事をしていることに気づきました。8つ以上のセマンティックカラーを持つプロダクトは、構造的明快さの代替としてカラーを使っていることが多かったのです。
プライマリヒエラルキーとしてのタイポグラフィ
ヒエラルキーを担うカラーがないため、タイポグラフィがすべてを担います。
:root {
--font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text",
"SF Pro Display", "Helvetica Neue", Arial, sans-serif;
--font-size-display: 5rem; /* 80px - hero headlines */
--font-size-7xl: 3.875rem; /* 62px */
--font-size-base: 1rem; /* 16px - body text */
--font-size-xs: 0.75rem; /* 12px - metadata */
}
カスタムウェブフォントではなく、システムフォントを使用しています。これはブルータリストの選択(プラットフォームのネイティブ素材を使う)であると同時に、パフォーマンスの選択(フォント読み込みのレイテンシがゼロになり、完璧なLighthouseスコアに貢献する)でもあります。ディスプレイサイズ(80px)にタイトなレタースペーシング(-0.03em)を組み合わせることで、装飾なしに見出しに重厚感を与えています。本文テキストは16pxで、ゆとりのある行間(1.7)により、密度よりも可読性を優先しています。3
8ポイントスペーシングシステム
すべてのスペーシング値は8ポイントの基準から導出されています。
:root {
--spacing-xs: 0.5rem; /* 8px */
--spacing-sm: 1rem; /* 16px */
--spacing-md: 1.5rem; /* 24px */
--spacing-lg: 2rem; /* 32px */
--spacing-xl: 3rem; /* 48px */
--spacing-2xl: 4rem; /* 64px */
--spacing-3xl: 6rem; /* 96px */
--spacing-4xl: 8rem; /* 128px */
}
任意の値はありません。システムに存在しないスペーシングがあるなら、間違っているのはデザインであり、システムではありません。これは苦い経験から学んだことです。サブタイトルのマージンに--spacing-2xs(存在しないトークン)を使用したとき、レイアウトが無警告で崩れました。修正は新しいトークンを作ることではなく、--spacing-xsに変更することでした。4
取り除いたもの(とその理由)
グラデーションなし
グラデーションには2つの目的があります。視覚的な興味と奥行きのシミュレーションです。コンテンツ(ブログ記事、プロジェクト説明)を中心に構築されたサイトでは、グラデーションはコンテンツと視覚的注目を奪い合います。すべてのグラデーションを取り除き、コンテンツ自体を視覚的な興味にしました。
イラストやアイコンなし
装飾的なSVGも、ヒーローイラストも、アイコンライブラリもありません。写真だけがタイポグラフィ以外の唯一の視覚要素です(ホームページの個人写真)。各写真は4/3のアスペクト比コンテナにborder-radiusのみを適用しています。シャドウもオーバーレイもカラー処理もありません。
ボックスシャドウなし(デフォルト状態)
デフォルト状態の要素にはシャドウがゼロです。ホバー状態でのみ微細な奥行きが加わります。
.lab-card:hover {
transform: translateY(-4px);
box-shadow: 0 8px 24px rgba(0,0,0,0.3);
}
シャドウは機能的なフィードバック(この要素はインタラクティブであり、あなたは今それを操作している)としてのみ表示され、装飾としては決して使用されません。
ライトモードなし
サイトにはprefers-color-schemeメディアクエリがありません。ダークモード専用で動作します。これは意図的に妥協しない選択です。2つのビジュアルシステムを維持して不可避的に両方を妥協するのではなく、1つのシステムを優れたものとしてデザインしました。絶対的な黒の背景(#0a0a0aや#1a1a1aではなく#000000)により、タイポグラフィに最大のコントラストを与えています。5
美が入り込む場所
ブルータリストの構造だけでは敵意を生みます。私のデザインにおける美は、装飾ではなく、実行における職人技から生まれています。
機能的フィードバックとしてのマイクロインタラクション
すべてのインタラクティブ要素にはトランジションがありますが、美的快楽のためだけのトランジションは存在しません。
:root {
--transition-fast: 150ms ease;
--transition-base: 300ms cubic-bezier(0.4, 0, 0.2, 1);
}
.nav a::after {
transform: scaleX(0);
transition: transform 0.25s ease;
}
.nav a:hover::after {
transform: scaleX(1); /* Underline grows from left */
}
ナビゲーションリンクはホバー時にアンダーラインを表示します(機能的:インタラクティブ性を確認する)。プロジェクトカードは1.08倍にスケールします(機能的:クリック可能な領域を示す)。モバイルのハンバーガーメニューはXにアニメーションします(機能的:状態変化を伝える)。機能的な目的のないアニメーションは存在しません。6
カードグループのエントランスアニメーション
カードはスタッガードされたtranslateY(16px)アニメーションで表示されます。
@keyframes socialCardIn {
from { transform: translateY(16px); opacity: 0; }
to { transform: translateY(0); opacity: 1; }
}
これは機能的な目的を果たしています。コンテンツが読み込まれたことを伝え、新しく表示された要素に注意を引くことです。スタッガー(各カードが100msずつ遅延する)はリズムを生み出し、ユーザーがグループを視覚的にスキャンするのを助けます。アニメーションはcubic-bezierイージングを伴う500msです。インタラクションを遅延させないほど速く、職人技を感じさせるほど滑らかです。
グラスモーフィズムヘッダー
唯一の装飾に近い要素です。
.header {
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
border-bottom: 1px solid var(--color-border);
background: var(--color-overlay); /* rgba(0,0,0,0.8) */
}
ブラーされたヘッダーは機能的な目的を果たしています。コンテンツがナビゲーションの後ろをスクロールすることを示し、ヘッダーを永続的なレイヤーとして確立します。しかしブラーは視覚的な職人技も加えています。これは、デザインが機能と並んで美を優先する数少ない瞬間の1つです。
同じバランスを見つけたプロダクト
Linear:ブルータリストの構造、美しい実行
Linearのプロジェクト管理インターフェースは、高密度でキーボード駆動型であり、プロフェッショナルユーザーを前提としています。イラストなし、段階的なオンボーディングなし。構造はブルータリストです。実行は美しいです。精密なタイポグラフィ、調和のとれたダークテーマ、滑らかな60fpsアニメーション。すべてのピクセルが目的を果たしています。その目的は職人技をもって果たされています。7
Notion:生のブロック、洗練されたシステム
Notionはその基盤となるデータモデル(ブロック)をユーザーに直接公開しています。構造的誠実さはブルータリストです。洗練はインタラクションデザインに現れています。滑らかなドラッグ&ドロップ、レスポンシブなインライン編集、そしてブロックシステムを楽に感じさせるコマンドパレットです。8
Arc Browser:ブルータリストなナビゲーション、美しいクローム
Arcはブラウザの基盤となるタブ管理システム(縦型タブ、ワークスペース、分割ビュー)を公開しています。構造的誠実さはブルータリストです。視覚的な実行(グラデーションテーマ、滑らかなアニメーション)が、タブ管理を臨床的ではなく心地よいものにしています。9
バランスポイント
最も効果的なアプローチは、構造にブルータリストの原則を、実行に美の原則を使用します。
| レイヤー | 原則 | 私の実装 |
|---|---|---|
| レイアウト | 誠実、機能的(ブルータリスト) | 800px最大幅の記事、サイドバー装飾なし |
| タイポグラフィ | 精密、調和的(美) | システムフォント、13段階スケール、-0.03em見出しトラッキング |
| カラー | 目的的、セマンティック(ブルータリスト) | 黒の上に白、不透明度のみのヒエラルキー |
| ボーダー | 構造的、最小限(ブルータリスト) | 1px rgba(255,255,255,0.1) ディバイダーのみ |
| モーション | 機能的、職人的(美) | 150-300msトランジション、cubic-bezierイージング |
| 画像 | 誠実、無装飾(ブルータリスト) | 写真のみ、イラストなし |
重要なポイント
デザイナーへ: - 構造(レイアウト、情報アーキテクチャ、カラー)にはブルータリストの原則を、実行(タイポグラフィ、スペーシング、マイクロインタラクション)には美の原則を使用してください。この組み合わせが、誠実で心地よいインターフェースを生み出します - すべての装飾的要素を取り除き、何が壊れるかを確認してください。何も壊れなければ、その装飾は不要だったのです - 2つのモードをそこそこに作るより、1つのモードを優れたものとしてデザインしてください。私のダークモード専用アプローチは、妥協したライト/ダークトグルよりも一貫性のあるシステムを生み出しています
開発者へ: - デザイントークンを任意の値なしのCSSカスタムプロパティとして実装してください。システムに存在しないスペーシングがある場合は、一度限りの値を追加するのではなく、デザインを修正してください - マイクロインタラクションを機能的フィードバックとして扱ってください。150msのホバートランジションはインタラクティブ性を伝えますが、2秒のエントランスアニメーションは有用な情報を何も伝えません
プロダクトリーダーへ: - 美的ポジションをユーザーコンテキストに合わせてください。プロフェッショナルツールはブルータリスト寄りに、コンシューマープロダクトは美寄りに、そして最高のプロダクトはその交差点を見つけます
参考文献
-
著者の個人サイトデザインシステム。絶対的な黒の背景、4つの不透明度ティアの白いタイポグラフィ、8ポイントスペーシングシステム、システムフォント。Lighthouseスコア:100/100/100/100。 ↩
-
著者の
critical.cssからのCSSカスタムプロパティ。10のカラートークン、すべて白-on-黒の不透明度関係から導出。 ↩ -
著者のタイポグラフィシステム。0.75rem(12px)から5rem(80px)までの13段階フォントスケール。システムフォントスタックによりFOIT/FOUTを排除。 ↩
-
著者のデバッグ経験。
--spacing-2xsが使用されたが:rootで定義されていなかった。MEMORY.mdのエラーエントリに記録。 ↩ -
著者のデザイン判断。単一のダークモードにより、ライト/ダークの並行システム維持に伴う視覚的妥協を回避。 ↩
-
Saffer, Dan, Microinteractions: Designing with Details, O’Reilly, 2013. ↩
-
Linear, “Design Philosophy,” linear.app, 2024. ↩
-
Notion, “Building Blocks,” notion.so, 2024. ↩
-
The Browser Company, “Arc Design Philosophy,” 2024. ↩