Web 2.0 is the glossy, gradient-heavy visual aesthetic that defined startup and social-media web design from approximately 2005 to 2010. Born alongside the explosion of user-generated content platforms – Flickr, del.icio.us, Digg, early Twitter, Basecamp – it signaled a shift from the gray, utilitarian interfaces of Web 1.0 to bright, bubbly, inviting pages that made the web feel approachable and exciting. The style is instantly recognizable by its oversized glossy buttons with specular reflections, generous drop shadows, rounded-everything, saturated color gradients, “Beta” badges, starburst callouts, reflective-floor logo treatments, and large friendly sans-serif typography rendered almost exclusively in lowercase. As a deliberate retro style today, Web 2.0 carries strong nostalgic appeal for the optimism of the mid-2000s tech boom, evoking the era when “tagging,” “sharing,” and “social bookmarking” were revolutionary concepts and every startup appended a cheerful gradient badge to announce its perpetual beta status.
border-radius on buttons, cards, input fields, navigation bars, and badges; sharp 90-degree corners are rareThe canonical Web 2.0 palette draws from the branded colors of era-defining services. These are saturated, optimistic, and unapologetically vivid.
| Swatch Name | Hex | Role / Usage |
|---|---|---|
| Flickr Pink | #FF0084 |
Primary accent, logo highlights, attention-grabbing links |
| Digg Blue | #356AA0 |
Navigation backgrounds, header bars, trust-conveying surfaces |
| Flock Blue | #4096EE |
Primary buttons, links, interactive elements, sky tones |
| RSS Orange | #FF7400 |
Call-to-action buttons, RSS icons, warm highlights |
| Techcrunch Green | #008C00 |
Success states, “Go” buttons, positive indicators |
| Basecamp Green | #6BBA70 |
Secondary buttons, muted success, friendly accents |
| Qoop Mint | #CDEB8B |
Light accent backgrounds, tag backgrounds, highlights |
| Gmail Blue | #C3D9FF |
Soft backgrounds, selected-row highlights, info panels |
| 43 Things Gold | #C79810 |
Premium badges, star ratings, warm accents |
| Rollyo Red | #CC0000 |
Error states, alerts, destructive action buttons |
| Last.fm Crimson | #D01F3C |
Bold accent, notifications, badges |
| Etsy Vermillion | #D15600 |
Warm secondary CTA, hover states on orange elements |
| Magnolia Cream | #F9F7ED |
Page backgrounds, off-white content areas |
| Shiny Silver | #EEEEEE |
Card backgrounds, border colors, subtle dividers |
| Shadows Grey | #36393D |
Body text, footer backgrounds, dark UI elements |
:root {
/* Primary accents */
--web2-flickr-pink: #ff0084;
--web2-flock-blue: #4096ee;
--web2-digg-blue: #356aa0;
--web2-rss-orange: #ff7400;
--web2-techcrunch-green: #008c00;
--web2-basecamp-green: #6bba70;
/* Secondary accents */
--web2-gmail-blue: #c3d9ff;
--web2-qoop-mint: #cdeb8b;
--web2-43things-gold: #c79810;
--web2-etsy-vermillion: #d15600;
--web2-rollyo-red: #cc0000;
--web2-lastfm-crimson: #d01f3c;
/* Neutrals */
--web2-magnolia: #f9f7ed;
--web2-silver: #eeeeee;
--web2-grey: #36393d;
--web2-white: #ffffff;
--web2-light-grey: #f5f5f5;
--web2-mid-grey: #999999;
--web2-border-grey: #cccccc;
/* Functional mappings */
--web2-bg-primary: var(--web2-white);
--web2-bg-secondary: var(--web2-magnolia);
--web2-bg-surface: var(--web2-silver);
--web2-text-primary: var(--web2-grey);
--web2-text-secondary: var(--web2-mid-grey);
--web2-accent: var(--web2-flock-blue);
--web2-accent-secondary: var(--web2-basecamp-green);
--web2-cta: var(--web2-rss-orange);
--web2-shadow: rgba(0, 0, 0, 0.25);
--web2-shadow-light: rgba(0, 0, 0, 0.12);
--web2-gloss: rgba(255, 255, 255, 0.6);
--web2-gloss-subtle: rgba(255, 255, 255, 0.3);
}
Web 2.0 typography is clean, rounded, sans-serif, and friendly. Lowercase is strongly preferred over uppercase. Headings are large and bold, often in a contrasting color to the body. The hallmark fonts of the era – Lucida Grande, Helvetica, and Verdana – prioritize screen readability at a time when anti-aliasing and font rendering were still maturing.
| Font | Style | Usage |
|---|---|---|
| Nunito | Rounded humanist sans | Headlines, logos – captures the bubbly Web 2.0 warmth |
| Cabin | Slightly rounded humanist | Body text, navigation – clean and modern |
| Open Sans | Neutral humanist sans | Body text, paragraphs – the workhorse readable font |
| Lato | Warm semi-rounded sans | Headlines, subheadings – professional yet friendly |
| Quicksand | Rounded geometric sans | Display text, badges, taglines – playful and bubbly |
| Varela Round | Rounded grotesque | Logos, buttons, labels – the closest to Lucida Grande feel |
| Source Sans 3 | Adobe humanist sans | Body text, UI labels – clean Frutiger-like proportions |
| Rubik | Rounded geometric-humanist | Headlines, buttons – chunky and friendly |
| Ubuntu | Humanist rounded | Headlines, navigation – distinctive and warm |
| PT Sans | Transitional humanist | Body text, long-form content – excellent readability |
| Heading Font | Body Font | Mood / Use Case |
|---|---|---|
| Nunito (700) | Open Sans (400) | Classic Web 2.0 feel; bubbly headlines with clean body text |
| Rubik (700) | Source Sans 3 (400) | Bold, chunky headers with refined, readable body |
| Varela Round (400) | Cabin (400) | Soft, approachable logos and navigation with crisp content |
| Quicksand (600) | PT Sans (400) | Playful display text paired with serious readability |
| Ubuntu (700) | Lato (400) | Distinctive, personality-rich headings with warm body text |
/* Google Fonts import */
@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800&family=Open+Sans:wght@400;600&family=Varela+Round&family=Quicksand:wght@500;600;700&display=swap');
/* Headlines */
h1, h2, h3 {
font-family: 'Nunito', 'Trebuchet MS', 'Lucida Grande', sans-serif;
font-weight: 700;
color: var(--web2-grey);
letter-spacing: -0.01em;
}
/* Display / hero text */
.web2-display {
font-family: 'Nunito', 'Trebuchet MS', sans-serif;
font-size: clamp(2rem, 5vw, 3.5rem);
font-weight: 800;
line-height: 1.2;
color: var(--web2-digg-blue);
}
/* Body text */
body {
font-family: 'Open Sans', 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif;
font-size: 14px;
font-weight: 400;
line-height: 1.7;
color: var(--web2-grey);
-webkit-font-smoothing: antialiased;
}
/* Logo / brand text */
.web2-logo {
font-family: 'Varela Round', 'Nunito', 'Lucida Grande', sans-serif;
font-size: 1.75rem;
font-weight: 400;
letter-spacing: -0.02em;
text-transform: lowercase;
color: var(--web2-digg-blue);
}
/* Badge / label text */
.web2-label {
font-family: 'Quicksand', 'Nunito', 'Helvetica Neue', sans-serif;
font-size: 0.7rem;
font-weight: 700;
letter-spacing: 0.05em;
text-transform: uppercase;
color: var(--web2-white);
}
/* Navigation links */
.web2-nav-link {
font-family: 'Nunito', 'Lucida Grande', sans-serif;
font-size: 0.875rem;
font-weight: 600;
color: var(--web2-white);
text-decoration: none;
text-transform: lowercase;
}
/* The classic Web 2.0 content card with gradient and shadow */
.web2-card {
background: linear-gradient(
180deg,
#ffffff 0%,
#f5f5f5 60%,
#eeeeee 100%
);
border: 1px solid #cccccc;
border-radius: 12px;
padding: 1.5rem 2rem;
position: relative;
overflow: hidden;
box-shadow:
0 3px 8px rgba(0, 0, 0, 0.15),
0 1px 2px rgba(0, 0, 0, 0.08);
transition: box-shadow 0.2s ease, transform 0.2s ease;
}
/* Upper gloss highlight */
.web2-card::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 50%;
background: linear-gradient(
180deg,
rgba(255, 255, 255, 0.8) 0%,
rgba(255, 255, 255, 0.2) 50%,
transparent 100%
);
border-radius: 12px 12px 0 0;
pointer-events: none;
}
.web2-card:hover {
transform: translateY(-2px);
box-shadow:
0 6px 16px rgba(0, 0, 0, 0.18),
0 2px 4px rgba(0, 0, 0, 0.08);
}
.web2-card h3 {
margin: 0 0 0.75rem;
font-size: 1.15rem;
color: var(--web2-digg-blue);
}
.web2-card p {
margin: 0;
font-size: 0.9rem;
color: #666666;
line-height: 1.6;
}
/* The quintessential Web 2.0 glossy button */
.web2-button {
display: inline-block;
padding: 0.65rem 1.75rem;
border-radius: 8px;
border: 1px solid rgba(0, 0, 0, 0.2);
border-bottom: 2px solid rgba(0, 0, 0, 0.25);
background: linear-gradient(
180deg,
#5aabf0 0%,
#4096ee 45%,
#2a7ad5 100%
);
color: #ffffff;
font-family: 'Nunito', 'Lucida Grande', sans-serif;
font-size: 0.95rem;
font-weight: 700;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.3);
cursor: pointer;
position: relative;
overflow: hidden;
box-shadow:
0 2px 6px rgba(0, 0, 0, 0.2),
inset 0 1px 0 rgba(255, 255, 255, 0.35);
transition: all 0.15s ease;
text-decoration: none;
}
/* Glossy specular highlight across top half */
.web2-button::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 50%;
background: linear-gradient(
180deg,
rgba(255, 255, 255, 0.5) 0%,
rgba(255, 255, 255, 0.1) 100%
);
border-radius: 7px 7px 0 0;
pointer-events: none;
}
.web2-button:hover {
background: linear-gradient(
180deg,
#6ab8f7 0%,
#4da3f5 45%,
#3585e0 100%
);
box-shadow:
0 3px 10px rgba(0, 0, 0, 0.25),
inset 0 1px 0 rgba(255, 255, 255, 0.4);
transform: translateY(-1px);
}
.web2-button:active {
background: linear-gradient(
180deg,
#3585e0 0%,
#2a7ad5 45%,
#1e6ac0 100%
);
box-shadow:
0 1px 3px rgba(0, 0, 0, 0.2),
inset 0 2px 4px rgba(0, 0, 0, 0.15);
transform: translateY(0);
}
/* Green CTA variant */
.web2-button--green {
background: linear-gradient(180deg, #5fbf6f 0%, #3da84d 45%, #2a8e3a 100%);
border-color: rgba(0, 80, 0, 0.3);
}
.web2-button--green:hover {
background: linear-gradient(180deg, #72cc80 0%, #4db85d 45%, #359945 100%);
}
/* Orange CTA variant */
.web2-button--orange {
background: linear-gradient(180deg, #ff9933 0%, #ff7400 45%, #e06000 100%);
border-color: rgba(100, 50, 0, 0.3);
}
.web2-button--orange:hover {
background: linear-gradient(180deg, #ffad55 0%, #ff8822 45%, #f07010 100%);
}
/* Large "Sign Up Free" CTA variant */
.web2-button--large {
padding: 1rem 2.5rem;
font-size: 1.2rem;
border-radius: 10px;
}
/* Classic Web 2.0 gradient navigation bar */
.web2-nav {
background: linear-gradient(
180deg,
#5a6c80 0%,
#3d4f63 50%,
#2c3e50 100%
);
border-bottom: 1px solid #1a2a3a;
padding: 0 2rem;
display: flex;
align-items: center;
justify-content: space-between;
height: 48px;
position: relative;
box-shadow:
0 2px 8px rgba(0, 0, 0, 0.25),
inset 0 1px 0 rgba(255, 255, 255, 0.12);
}
/* Top-edge gloss on nav bar */
.web2-nav::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 50%;
background: linear-gradient(
180deg,
rgba(255, 255, 255, 0.15) 0%,
rgba(255, 255, 255, 0.02) 100%
);
pointer-events: none;
}
.web2-nav__logo {
font-family: 'Varela Round', 'Nunito', sans-serif;
font-size: 1.35rem;
color: #ffffff;
text-decoration: none;
text-transform: lowercase;
position: relative;
z-index: 1;
}
.web2-nav__links {
display: flex;
gap: 0.25rem;
list-style: none;
margin: 0;
padding: 0;
position: relative;
z-index: 1;
}
.web2-nav__links a {
display: block;
padding: 0.4rem 0.9rem;
border-radius: 4px;
font-family: 'Nunito', sans-serif;
font-size: 0.85rem;
font-weight: 600;
color: rgba(255, 255, 255, 0.85);
text-decoration: none;
transition: all 0.15s ease;
}
.web2-nav__links a:hover,
.web2-nav__links a.active {
background: rgba(255, 255, 255, 0.12);
color: #ffffff;
}
/* Web 2.0 hero section with gradient background */
.web2-hero {
background: linear-gradient(
180deg,
#e8f4fd 0%,
#c3d9ff 40%,
#a8c8f0 100%
);
border-bottom: 1px solid #a0b8d0;
text-align: center;
padding: 4rem 2rem 5rem;
position: relative;
overflow: hidden;
}
/* Subtle inner shadow at bottom */
.web2-hero::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 40px;
background: linear-gradient(
180deg,
transparent,
rgba(0, 0, 0, 0.04)
);
pointer-events: none;
}
.web2-hero h1 {
font-family: 'Nunito', 'Trebuchet MS', sans-serif;
font-size: clamp(2rem, 5vw, 3.2rem);
font-weight: 800;
color: var(--web2-grey);
margin-bottom: 0.75rem;
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.7);
}
.web2-hero p {
font-family: 'Open Sans', sans-serif;
font-size: 1.15rem;
color: #555555;
max-width: 600px;
margin: 0 auto 2rem;
line-height: 1.6;
}
/* The iconic Web 2.0 "Beta" badge */
.web2-beta-badge {
display: inline-block;
padding: 0.15rem 0.55rem;
font-family: 'Quicksand', 'Nunito', sans-serif;
font-size: 0.6rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.08em;
color: #ffffff;
background: linear-gradient(
180deg,
#ff5a9e 0%,
#ff0084 50%,
#d4006d 100%
);
border-radius: 6px;
border: 1px solid rgba(0, 0, 0, 0.15);
box-shadow:
0 1px 3px rgba(0, 0, 0, 0.2),
inset 0 1px 0 rgba(255, 255, 255, 0.35);
position: relative;
overflow: hidden;
vertical-align: super;
margin-left: 0.3rem;
line-height: 1;
}
/* Glossy top highlight */
.web2-beta-badge::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 50%;
background: linear-gradient(
180deg,
rgba(255, 255, 255, 0.45) 0%,
rgba(255, 255, 255, 0.05) 100%
);
pointer-events: none;
}
/* Web 2.0 starburst callout -- the "New!", "Free!", "Sale!" badge */
.web2-starburst {
position: relative;
display: inline-flex;
align-items: center;
justify-content: center;
width: 80px;
height: 80px;
font-family: 'Nunito', sans-serif;
font-size: 0.85rem;
font-weight: 800;
color: #ffffff;
text-transform: uppercase;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.3);
z-index: 1;
filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.25));
}
/* Star shape built from rotated squares */
.web2-starburst::before,
.web2-starburst::after {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(
180deg,
#ff5a5a 0%,
#cc0000 100%
);
z-index: -1;
}
.web2-starburst::before {
border-radius: 4px;
transform: rotate(0deg);
}
.web2-starburst::after {
border-radius: 4px;
transform: rotate(45deg);
}
/* Third layer via a wrapper for full starburst (use an inner span) */
.web2-starburst span {
position: relative;
z-index: 2;
}
/* Alternate approach: CSS clip-path starburst */
.web2-starburst--clip {
width: 90px;
height: 90px;
display: inline-flex;
align-items: center;
justify-content: center;
background: linear-gradient(
180deg,
#ff5a5a 0%,
#cc0000 100%
);
clip-path: polygon(
50% 0%, 63% 25%, 90% 10%, 78% 38%,
100% 50%, 78% 63%, 90% 90%, 63% 78%,
50% 100%, 38% 78%, 10% 90%, 23% 63%,
0% 50%, 23% 38%, 10% 10%, 38% 25%
);
font-family: 'Nunito', sans-serif;
font-size: 0.8rem;
font-weight: 800;
color: #ffffff;
text-transform: uppercase;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.3);
filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.25));
}
/* The classic Web 2.0 reflective floor / mirror effect */
.web2-reflection-container {
display: inline-block;
position: relative;
}
.web2-reflection-container img,
.web2-reflection-container .web2-reflected-text {
display: block;
}
/* The reflection is an inverted, fading copy placed below the original */
.web2-reflection {
transform: scaleY(-1);
-webkit-mask-image: linear-gradient(
180deg,
rgba(0, 0, 0, 0.25) 0%,
transparent 60%
);
mask-image: linear-gradient(
180deg,
rgba(0, 0, 0, 0.25) 0%,
transparent 60%
);
opacity: 0.4;
pointer-events: none;
margin-top: -2px;
}
/* Reflective floor surface beneath hero elements */
.web2-reflective-floor {
position: relative;
padding-bottom: 3rem;
}
.web2-reflective-floor::after {
content: '';
position: absolute;
bottom: 0;
left: 10%;
right: 10%;
height: 1px;
background: linear-gradient(
90deg,
transparent,
rgba(0, 0, 0, 0.08),
transparent
);
}
/* Glossy raised panel -- the Web 2.0 content container */
.web2-panel {
background: linear-gradient(
180deg,
#ffffff 0%,
#f8f8f8 100%
);
border: 1px solid #cccccc;
border-top: 1px solid #dddddd;
border-radius: 10px;
padding: 1.5rem 2rem;
position: relative;
overflow: hidden;
box-shadow:
0 3px 10px rgba(0, 0, 0, 0.12),
inset 0 1px 0 rgba(255, 255, 255, 0.9);
}
/* Gradient header bar on panel */
.web2-panel__header {
background: linear-gradient(
180deg,
#5a8cbf 0%,
#356aa0 50%,
#2a5580 100%
);
margin: -1.5rem -2rem 1.5rem;
padding: 0.75rem 2rem;
border-radius: 10px 10px 0 0;
border-bottom: 1px solid #1e3f5f;
position: relative;
overflow: hidden;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2);
}
/* Gloss on panel header */
.web2-panel__header::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 50%;
background: linear-gradient(
180deg,
rgba(255, 255, 255, 0.2) 0%,
rgba(255, 255, 255, 0.02) 100%
);
pointer-events: none;
}
.web2-panel__header h3 {
margin: 0;
font-size: 0.95rem;
font-weight: 700;
color: #ffffff;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.3);
}
/* Web 2.0 tag cloud -- the iconic sidebar widget */
.web2-tag-cloud {
display: flex;
flex-wrap: wrap;
gap: 0.4rem;
padding: 1rem;
}
.web2-tag {
display: inline-block;
padding: 0.2rem 0.6rem;
background: linear-gradient(
180deg,
#f0f0f0 0%,
#e0e0e0 100%
);
border: 1px solid #cccccc;
border-radius: 4px;
font-family: 'Open Sans', sans-serif;
font-size: 0.75rem;
font-weight: 600;
color: var(--web2-digg-blue);
text-decoration: none;
box-shadow:
0 1px 2px rgba(0, 0, 0, 0.08),
inset 0 1px 0 rgba(255, 255, 255, 0.8);
transition: all 0.15s ease;
}
.web2-tag:hover {
background: linear-gradient(
180deg,
#4da3f5 0%,
#356aa0 100%
);
color: #ffffff;
border-color: #2a5580;
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.2);
}
/* Size variations for cloud weighting */
.web2-tag--sm { font-size: 0.65rem; }
.web2-tag--md { font-size: 0.8rem; }
.web2-tag--lg { font-size: 1rem; font-weight: 700; }
.web2-tag--xl { font-size: 1.2rem; font-weight: 800; }
::before pseudo-element with a white-to-transparent gradient on the top half of glossy elements for the specular highlightinset box-shadows with white for inner glow and standard box-shadows for depth beneath elementsborder-radius: 6px to 12px for containers, full pill shapes for tags and small badges0 -1px 1px rgba(0,0,0,0.3) for the classic engraved/letterpress lookbackdrop-filter or glassmorphism – Web 2.0 predates these; use opaque gradients and solid shadows instead| Aesthetic | Relationship to Web 2.0 |
|---|---|
| Frutiger Aero | Sibling aesthetic; shares the same era and glossy techniques but focuses on nature imagery, eco-optimism, and Aero Glass transparency rather than startup culture |
| Light Skeuomorphism | Modern descendant; revives subtle depth cues (soft shadows, gentle gradients) without the full glossy excess |
| Flat Design | Direct successor and reaction; stripped away all of Web 2.0’s gradients, gloss, and shadows starting around 2012-2013 with iOS 7 and Metro |
| Material Design | Google’s structured evolution; reintroduced shadows and layers to Flat Design using Web 2.0-era depth principles |
| Glassmorphism | Spiritual grandchild; revives translucency and gloss in a contemporary context |
| Claymorphism | Modern playful cousin; shares the bubbly, rounded, colorful sensibility but with inflated 3D clay-like surfaces |
| Metro Design | Contemporary rival that emerged at the end of Web 2.0; Microsoft’s sharp-cornered, typography-first reaction to glossy excess |
| 8-Bit | Shares the playful, nostalgic tone but draws from an earlier pixel-art era rather than mid-2000s startup culture |
| Dopamine Design | Modern spiritual successor; matches Web 2.0’s bold, saturated, optimistic color energy in a contemporary context |
| Y2K Futurism | Predecessor; shares techno-optimism but with a chrome, metallic, angular language rather than rounded bubbly gloss |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>shareify -- share anything, anywhere</title>
<link href="https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800&family=Open+Sans:wght@400;600&family=Varela+Round&family=Quicksand:wght@500;600;700&display=swap" rel="stylesheet">
<style>
:root {
--web2-flickr-pink: #ff0084;
--web2-flock-blue: #4096ee;
--web2-digg-blue: #356aa0;
--web2-rss-orange: #ff7400;
--web2-basecamp-green: #6bba70;
--web2-gmail-blue: #c3d9ff;
--web2-qoop-mint: #cdeb8b;
--web2-magnolia: #f9f7ed;
--web2-silver: #eeeeee;
--web2-grey: #36393d;
--web2-white: #ffffff;
--web2-border: #cccccc;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
background: var(--web2-magnolia);
color: var(--web2-grey);
font-family: 'Open Sans', 'Lucida Grande', Verdana, Helvetica, Arial, sans-serif;
font-size: 14px;
line-height: 1.7;
-webkit-font-smoothing: antialiased;
}
/* ── Navigation Bar ── */
.nav {
background: linear-gradient(180deg, #5a6c80 0%, #3d4f63 50%, #2c3e50 100%);
border-bottom: 1px solid #1a2a3a;
padding: 0 2rem;
display: flex;
align-items: center;
justify-content: space-between;
height: 48px;
position: relative;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.12);
}
.nav::before {
content: '';
position: absolute;
top: 0; left: 0; right: 0;
height: 50%;
background: linear-gradient(180deg, rgba(255,255,255,0.15), rgba(255,255,255,0.02));
pointer-events: none;
}
.nav-logo {
font-family: 'Varela Round', 'Nunito', sans-serif;
font-size: 1.35rem;
color: #fff;
text-decoration: none;
text-transform: lowercase;
position: relative; z-index: 1;
}
.nav-logo .beta {
display: inline-block;
padding: 0.1rem 0.45rem;
font-family: 'Quicksand', sans-serif;
font-size: 0.55rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.08em;
color: #fff;
background: linear-gradient(180deg, #ff5a9e, #ff0084, #d4006d);
border-radius: 5px;
border: 1px solid rgba(0,0,0,0.15);
box-shadow: 0 1px 2px rgba(0,0,0,0.2), inset 0 1px 0 rgba(255,255,255,0.3);
position: relative; overflow: hidden;
vertical-align: super;
margin-left: 0.2rem;
line-height: 1;
}
.nav-logo .beta::before {
content: '';
position: absolute;
top: 0; left: 0; right: 0; height: 50%;
background: linear-gradient(180deg, rgba(255,255,255,0.4), rgba(255,255,255,0));
pointer-events: none;
}
.nav-links {
display: flex;
gap: 0.25rem;
list-style: none;
position: relative; z-index: 1;
}
.nav-links a {
display: block;
padding: 0.4rem 0.9rem;
border-radius: 4px;
font-family: 'Nunito', sans-serif;
font-size: 0.85rem;
font-weight: 600;
color: rgba(255,255,255,0.85);
text-decoration: none;
text-transform: lowercase;
transition: all 0.15s ease;
}
.nav-links a:hover, .nav-links a.active {
background: rgba(255,255,255,0.12);
color: #ffffff;
}
/* ── Hero Section ── */
.hero {
background: linear-gradient(180deg, #e8f4fd 0%, #c3d9ff 40%, #a8c8f0 100%);
border-bottom: 1px solid #a0b8d0;
text-align: center;
padding: 4rem 2rem 5rem;
position: relative;
overflow: hidden;
}
.hero::after {
content: '';
position: absolute;
bottom: 0; left: 0; right: 0;
height: 40px;
background: linear-gradient(180deg, transparent, rgba(0,0,0,0.04));
pointer-events: none;
}
.hero h1 {
font-family: 'Nunito', 'Trebuchet MS', sans-serif;
font-size: clamp(2rem, 5vw, 3.2rem);
font-weight: 800;
color: var(--web2-grey);
margin-bottom: 0.75rem;
text-shadow: 0 1px 0 rgba(255,255,255,0.7);
}
.hero p {
font-size: 1.15rem;
color: #555;
max-width: 600px;
margin: 0 auto 2rem;
line-height: 1.6;
}
/* ── Glossy Button ── */
.btn {
display: inline-block;
padding: 0.75rem 2rem;
border-radius: 8px;
border: 1px solid rgba(0,0,0,0.2);
border-bottom: 2px solid rgba(0,0,0,0.25);
color: #fff;
font-family: 'Nunito', sans-serif;
font-size: 1rem;
font-weight: 700;
text-shadow: 0 -1px 1px rgba(0,0,0,0.3);
cursor: pointer;
position: relative;
overflow: hidden;
transition: all 0.15s ease;
text-decoration: none;
}
.btn::before {
content: '';
position: absolute;
top: 0; left: 0; right: 0; height: 50%;
background: linear-gradient(180deg, rgba(255,255,255,0.5), rgba(255,255,255,0.1));
border-radius: 7px 7px 0 0;
pointer-events: none;
}
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(0); }
.btn--blue {
background: linear-gradient(180deg, #5aabf0, #4096ee 45%, #2a7ad5);
box-shadow: 0 2px 6px rgba(0,0,0,0.2), inset 0 1px 0 rgba(255,255,255,0.35);
}
.btn--blue:hover {
background: linear-gradient(180deg, #6ab8f7, #4da3f5 45%, #3585e0);
box-shadow: 0 3px 10px rgba(0,0,0,0.25), inset 0 1px 0 rgba(255,255,255,0.4);
}
.btn--green {
background: linear-gradient(180deg, #5fbf6f, #3da84d 45%, #2a8e3a);
box-shadow: 0 2px 6px rgba(0,80,0,0.2), inset 0 1px 0 rgba(255,255,255,0.35);
}
.btn--green:hover {
background: linear-gradient(180deg, #72cc80, #4db85d 45%, #359945);
}
.btn--orange {
background: linear-gradient(180deg, #ff9933, #ff7400 45%, #e06000);
box-shadow: 0 2px 6px rgba(100,50,0,0.2), inset 0 1px 0 rgba(255,255,255,0.35);
}
.btn--large {
padding: 1rem 2.75rem;
font-size: 1.2rem;
border-radius: 10px;
}
/* ── Main Container ── */
.container {
max-width: 960px;
margin: 0 auto;
padding: 0 2rem;
}
/* ── Feature Cards Section ── */
.features {
padding: 3rem 0;
}
.features h2 {
font-family: 'Nunito', sans-serif;
font-size: 1.6rem;
font-weight: 700;
color: var(--web2-digg-blue);
text-align: center;
margin-bottom: 2rem;
}
.feature-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 1.5rem;
}
.card {
background: linear-gradient(180deg, #ffffff 0%, #f5f5f5 60%, #eee 100%);
border: 1px solid var(--web2-border);
border-radius: 12px;
padding: 1.75rem 1.5rem;
text-align: center;
position: relative;
overflow: hidden;
box-shadow: 0 3px 8px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.06);
transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.card::before {
content: '';
position: absolute;
top: 0; left: 0; right: 0; height: 50%;
background: linear-gradient(180deg, rgba(255,255,255,0.8), rgba(255,255,255,0.15), transparent);
border-radius: 12px 12px 0 0;
pointer-events: none;
}
.card:hover {
transform: translateY(-2px);
box-shadow: 0 6px 16px rgba(0,0,0,0.15), 0 2px 4px rgba(0,0,0,0.06);
}
.card-icon {
display: inline-flex;
align-items: center;
justify-content: center;
width: 56px;
height: 56px;
border-radius: 14px;
font-size: 1.5rem;
margin-bottom: 1rem;
position: relative;
overflow: hidden;
box-shadow: 0 3px 8px rgba(0,0,0,0.2), inset 0 1px 0 rgba(255,255,255,0.4);
}
.card-icon::before {
content: '';
position: absolute;
top: 0; left: 0; right: 0; height: 50%;
background: linear-gradient(180deg, rgba(255,255,255,0.5), rgba(255,255,255,0.05));
pointer-events: none;
}
.card-icon--blue {
background: linear-gradient(180deg, #5aabf0, #356aa0);
}
.card-icon--green {
background: linear-gradient(180deg, #72cc80, #2a8e3a);
}
.card-icon--orange {
background: linear-gradient(180deg, #ffad55, #e06000);
}
.card h3 {
font-family: 'Nunito', sans-serif;
font-size: 1.1rem;
font-weight: 700;
color: var(--web2-digg-blue);
margin-bottom: 0.5rem;
}
.card p {
font-size: 0.85rem;
color: #666;
line-height: 1.6;
}
/* ── Starburst Badge ── */
.starburst {
position: absolute;
top: -8px;
right: -8px;
width: 70px;
height: 70px;
display: flex;
align-items: center;
justify-content: center;
background: linear-gradient(180deg, #ff5a5a, #cc0000);
clip-path: polygon(
50% 0%, 63% 25%, 90% 10%, 78% 38%,
100% 50%, 78% 63%, 90% 90%, 63% 78%,
50% 100%, 38% 78%, 10% 90%, 23% 63%,
0% 50%, 23% 38%, 10% 10%, 38% 25%
);
font-family: 'Nunito', sans-serif;
font-size: 0.65rem;
font-weight: 800;
color: #fff;
text-transform: uppercase;
text-shadow: 0 -1px 1px rgba(0,0,0,0.3);
filter: drop-shadow(0 2px 3px rgba(0,0,0,0.25));
z-index: 2;
transform: rotate(12deg);
}
/* ── Glossy Panel with Header ── */
.panel {
background: linear-gradient(180deg, #fff, #f8f8f8);
border: 1px solid var(--web2-border);
border-radius: 10px;
overflow: hidden;
box-shadow: 0 3px 10px rgba(0,0,0,0.1), inset 0 1px 0 rgba(255,255,255,0.9);
margin-top: 2rem;
}
.panel-header {
background: linear-gradient(180deg, #5a8cbf, #356aa0 50%, #2a5580);
padding: 0.75rem 1.5rem;
border-bottom: 1px solid #1e3f5f;
position: relative;
overflow: hidden;
box-shadow: inset 0 1px 0 rgba(255,255,255,0.2);
}
.panel-header::before {
content: '';
position: absolute;
top: 0; left: 0; right: 0; height: 50%;
background: linear-gradient(180deg, rgba(255,255,255,0.2), rgba(255,255,255,0.02));
pointer-events: none;
}
.panel-header h3 {
font-family: 'Nunito', sans-serif;
font-size: 0.95rem;
font-weight: 700;
color: #fff;
text-shadow: 0 -1px 1px rgba(0,0,0,0.3);
position: relative;
z-index: 1;
}
.panel-body {
padding: 1.5rem;
}
/* ── Tag Cloud ── */
.tag-cloud {
display: flex;
flex-wrap: wrap;
gap: 0.4rem;
}
.tag {
display: inline-block;
padding: 0.2rem 0.6rem;
background: linear-gradient(180deg, #f0f0f0, #e0e0e0);
border: 1px solid #ccc;
border-radius: 4px;
font-family: 'Open Sans', sans-serif;
font-weight: 600;
color: var(--web2-digg-blue);
text-decoration: none;
box-shadow: 0 1px 2px rgba(0,0,0,0.08), inset 0 1px 0 rgba(255,255,255,0.8);
transition: all 0.15s ease;
}
.tag:hover {
background: linear-gradient(180deg, #4da3f5, #356aa0);
color: #fff;
border-color: #2a5580;
}
.tag--sm { font-size: 0.6rem; }
.tag--md { font-size: 0.75rem; }
.tag--lg { font-size: 0.9rem; font-weight: 700; }
.tag--xl { font-size: 1.05rem; font-weight: 800; }
/* ── Reflective Logo ── */
.logo-reflect {
text-align: center;
padding: 3rem 0 2rem;
}
.logo-reflect h2 {
font-family: 'Varela Round', 'Nunito', sans-serif;
font-size: 3rem;
font-weight: 400;
color: var(--web2-digg-blue);
text-transform: lowercase;
line-height: 1;
margin-bottom: 0;
}
.logo-reflect .reflection {
font-family: 'Varela Round', 'Nunito', sans-serif;
font-size: 3rem;
font-weight: 400;
color: var(--web2-digg-blue);
text-transform: lowercase;
line-height: 1;
transform: scaleY(-1);
-webkit-mask-image: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 55%);
mask-image: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 55%);
opacity: 0.35;
pointer-events: none;
user-select: none;
margin-top: -4px;
}
.logo-reflect .floor-line {
width: 200px;
height: 1px;
background: linear-gradient(90deg, transparent, rgba(0,0,0,0.08), transparent);
margin: 0 auto;
}
/* ── CTA Section ── */
.cta-section {
text-align: center;
padding: 3rem 0;
}
.cta-section h2 {
font-family: 'Nunito', sans-serif;
font-size: 1.5rem;
font-weight: 700;
color: var(--web2-grey);
margin-bottom: 0.5rem;
}
.cta-section p {
color: #777;
margin-bottom: 1.5rem;
}
/* ── Footer ── */
.footer {
background: linear-gradient(180deg, #3d4f63, #2c3e50);
border-top: 1px solid #556b7f;
padding: 2rem;
text-align: center;
position: relative;
box-shadow: inset 0 1px 0 rgba(255,255,255,0.08);
}
.footer::before {
content: '';
position: absolute;
top: 0; left: 0; right: 0; height: 1px;
background: rgba(255,255,255,0.1);
}
.footer-links {
display: flex;
justify-content: center;
gap: 1.5rem;
list-style: none;
margin-bottom: 1rem;
}
.footer-links a {
font-family: 'Nunito', sans-serif;
font-size: 0.8rem;
font-weight: 600;
color: rgba(255,255,255,0.65);
text-decoration: none;
text-transform: lowercase;
transition: color 0.15s ease;
}
.footer-links a:hover {
color: #ffffff;
}
.footer p {
font-size: 0.75rem;
color: rgba(255,255,255,0.4);
}
/* ── Responsive adjustments ── */
@media (max-width: 768px) {
.feature-grid {
grid-template-columns: 1fr;
gap: 1rem;
}
.nav {
flex-direction: column;
height: auto;
padding: 0.75rem 1.5rem;
gap: 0.5rem;
}
.nav-links { gap: 0.15rem; }
.hero { padding: 2.5rem 1.5rem 3.5rem; }
}
</style>
</head>
<body>
<!-- Navigation Bar -->
<nav class="nav">
<a href="#" class="nav-logo">shareify<span class="beta">beta</span></a>
<ul class="nav-links">
<li><a href="#" class="active">home</a></li>
<li><a href="#">features</a></li>
<li><a href="#">pricing</a></li>
<li><a href="#">blog</a></li>
<li><a href="#">sign up</a></li>
</ul>
</nav>
<!-- Hero Section -->
<section class="hero">
<h1>share anything, with anyone, anywhere.</h1>
<p>the simple way to bookmark, tag, and share your favorite links with the world. it's fast, free, and ridiculously easy.</p>
<a href="#" class="btn btn--green btn--large">get started free »</a>
</section>
<!-- Features Section -->
<div class="container">
<section class="features">
<h2>why you'll love shareify</h2>
<div class="feature-grid">
<!-- Card 1 -->
<div class="card">
<div class="starburst">new!</div>
<div class="card-icon card-icon--blue">★</div>
<h3>smart tagging</h3>
<p>organize your bookmarks with tags that actually make sense. find anything in seconds, not minutes.</p>
</div>
<!-- Card 2 -->
<div class="card">
<div class="card-icon card-icon--green">♥</div>
<h3>social sharing</h3>
<p>see what your friends are bookmarking. discover trending links from the community in real-time.</p>
</div>
<!-- Card 3 -->
<div class="card">
<div class="card-icon card-icon--orange">⚡</div>
<h3>instant sync</h3>
<p>your bookmarks follow you everywhere. access them from any browser, any device, any time.</p>
</div>
</div>
</section>
<!-- Reflective Logo Demo -->
<section class="logo-reflect">
<h2>shareify</h2>
<div class="floor-line"></div>
<div class="reflection" aria-hidden="true">shareify</div>
</section>
<!-- Panel with Tag Cloud -->
<div class="panel">
<div class="panel-header">
<h3>popular tags</h3>
</div>
<div class="panel-body">
<div class="tag-cloud">
<a href="#" class="tag tag--xl">javascript</a>
<a href="#" class="tag tag--lg">web 2.0</a>
<a href="#" class="tag tag--lg">ajax</a>
<a href="#" class="tag tag--md">ruby on rails</a>
<a href="#" class="tag tag--xl">css</a>
<a href="#" class="tag tag--sm">microformats</a>
<a href="#" class="tag tag--md">api</a>
<a href="#" class="tag tag--lg">mashup</a>
<a href="#" class="tag tag--sm">rss</a>
<a href="#" class="tag tag--md">folksonomy</a>
<a href="#" class="tag tag--lg">social</a>
<a href="#" class="tag tag--sm">tagging</a>
<a href="#" class="tag tag--md">widgets</a>
<a href="#" class="tag tag--xl">design</a>
<a href="#" class="tag tag--sm">podcasting</a>
<a href="#" class="tag tag--lg">startups</a>
<a href="#" class="tag tag--md">flickr</a>
<a href="#" class="tag tag--sm">digg</a>
</div>
</div>
</div>
<!-- CTA Section -->
<section class="cta-section">
<h2>ready to start sharing?</h2>
<p>join 127,483 people who are already using shareify to organize the web.</p>
<a href="#" class="btn btn--orange btn--large">sign up for free »</a>
</section>
</div>
<!-- Footer -->
<footer class="footer">
<ul class="footer-links">
<li><a href="#">about</a></li>
<li><a href="#">blog</a></li>
<li><a href="#">api</a></li>
<li><a href="#">terms</a></li>
<li><a href="#">privacy</a></li>
<li><a href="#">contact</a></li>
</ul>
<p>© 2007 shareify, inc. all rights reserved. made with ♥ in san francisco.</p>
</footer>
</body>
</html>