This comprehensive style guide ensures consistency across all MONAI website pages. It defines standardized patterns for typography, layout, components, and interactions to create a cohesive user experience.
- Primary:
brand-primary(#00C9B5) - Main brand teal color - Primary Light:
brand-light- Lighter teal for backgrounds - Primary Dark:
brand-dark- Darker teal for emphasis
- Darkest Black:
neutral-darkestblack- Headlines and primary text - Light Gray:
neutral-lightgray- Section backgrounds - Gray Shades:
gray-800- Dark textgray-700- Body textgray-600- Secondary textgray-200- Borders
Dot pattern overlay:(Deprecated - removed from all pages)opacity-[0.10] bg-[radial-gradient(circle_at_1px_1px,#000_1px,transparent_0)]
<h1 class="text-4xl font-bold text-gray-800 mb-8">Page Title</h1><h2 class="text-3xl font-bold text-neutral-darkestblack mb-8">Section Title</h2><h3 class="text-xl font-semibold text-brand-primary mb-6 pb-2 border-b border-neutral-200">Subsection Title</h3><p class="text-lg leading-relaxed text-gray-700">
Body content with comfortable line height and spacing.
</p><h4 class="uppercase text-sm font-medium text-gray-600 mb-3">LABEL TEXT</h4><body class="flex flex-col min-h-screen">
<!-- Header -->
<main class="flex-grow pt-20">
<!-- Content -->
</main>
<!-- Footer -->
</body>- Standard sections:
py-24 - Compact sections:
py-12 - Hero sections: Standard padding without decorative patterns
<div class="container">
<!-- Centered content with responsive padding -->
</div><section class="py-24 bg-brand-light">
<div class="container">
<h1 class="text-4xl font-bold text-gray-800 mb-8">Title</h1>
<p class="text-lg leading-relaxed text-gray-700 max-w-3xl">
Hero description text
</p>
</div>
</section><div class="bg-white rounded-xl shadow-md">
<div class="border-b border-gray-200 bg-brand-dark">
<h3 class="text-xl font-semibold text-white p-8 pb-6 text-center">Card Title</h3>
</div>
<div class="p-8">
<!-- Card content -->
</div>
</div><div class="bg-white p-8 rounded-lg border border-neutral-200 hover:border-brand-primary hover:shadow-md transition-all duration-300">
<!-- Card content -->
</div><div class="flex flex-col items-center text-center">
<div class="w-24 h-24 mb-2">
<img src="path/to/image.jpg" alt="Name"
class="w-full h-full rounded-full object-cover shadow-md">
</div>
<h5 class="font-medium text-gray-800">Name</h5>
<p class="text-sm text-brand-primary">Title/Role</p>
</div><div class="bg-white p-8 rounded-lg border border-neutral-200 hover:border-brand-primary hover:shadow-md transition-all duration-300">
<div class="flex flex-col items-center text-center">
<img src="path/to/image.jpg" alt="Name"
class="w-32 h-32 rounded-full object-cover mb-6 border-4 border-brand-light">
<div>
<p class="text-xl font-semibold text-gray-800 mb-2">Full Name</p>
<p class="text-base text-gray-600 mb-1">Title</p>
<p class="text-sm text-gray-600 mb-1">Organization</p>
<p class="text-sm font-medium text-brand-primary">Role in MONAI</p>
</div>
</div>
</div><a href="#" class="px-6 py-2.5 rounded-lg bg-white text-brand-primary border-2 border-brand-primary hover:bg-brand-light transition-colors inline-flex items-center gap-2 group">
<span>Button Text</span>
<svg class="w-4 h-4 transition-transform group-hover:translate-x-1" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7l5 5m0 0l-5 5m5-5H6"></path>
</svg>
</a><a href="#" class="text-brand-primary hover:text-brand-dark transition-colors duration-300">Link Text</a><!-- 4-column grid on large screens -->
<div class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4">
<!-- Grid items -->
</div>
<!-- 3-column grid -->
<div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6">
<!-- Grid items -->
</div>
<!-- 2-column grid -->
<div class="grid grid-cols-1 md:grid-cols-2 gap-8">
<!-- Grid items -->
</div><ul class="space-y-4 text-gray-700">
<li class="flex items-start">
<span class="text-brand-primary mr-3">•</span>
<span>List item content</span>
</li>
</ul><section class="py-24 bg-white"><section class="py-24 bg-neutral-lightgray">
<div class="container">
<!-- Content -->
</div>
</section><section class="py-24 bg-brand-light">
<div class="container">
<!-- Content -->
</div>
</section><section class="py-12 bg-brand-dark/15">- Headings:
mb-8for main headings,mb-6for subheadings,mb-4for smaller headings - Paragraphs:
mb-4between paragraphs - Sections:
mb-12between major content blocks
- Cards:
p-8for generous padding,p-6for compact - Sections:
py-24for standard,py-12for compact
sm:- 640px and upmd:- 768px and uplg:- 1024px and upxl:- 1280px and up
Always define base styles first, then add responsive modifiers:
<div class="w-full lg:w-1/2">
<!-- Full width on mobile, half width on large screens -->
</div>transition-colors duration-300
transition-all duration-300
transition-transform duration-300- Cards:
hover:border-brand-primary hover:shadow-md - Buttons:
hover:bg-brand-light - Links:
hover:text-brand-dark - Images:
hover:scale-105
Always include descriptive alt text:
<img src="path/to/image.jpg" alt="Descriptive text about the image">Ensure links have meaningful text or additional context:
<a href="#" aria-label="Learn more about MONAI Deploy">Learn More</a>Use appropriate HTML elements for their intended purpose:
<main>for main content<section>for page sections<nav>for navigation<h1>through<h6>for headings in proper hierarchy
- Hero section with mission statement
- Initiatives/Focus areas (2-column grid)
- Group leads section (3-column grid)
- Resources section
- Collaboration opportunities
- Hero section with main description
- Content sections with alternating layouts
- Team/member grids
- Call-to-action sections
- Overview section
- Features section
- Getting started/Components section
- Advanced features section
- Research/Applications section
- Citation section
- Community/Resources section
- Additional product-specific sections as needed
Product pages should use a three-color rotation pattern to create visual interest:
bg-white→bg-brand-light→bg-neutral-lightgray→bg-white(repeat)
Example sequence:
- Overview:
bg-white - Features:
bg-brand-light - Components:
bg-neutral-lightgray - Advanced:
bg-white - Research:
bg-brand-light - Citation:
bg-neutral-lightgray - Community:
bg-white
Content-focused pages (about, working-groups) should use simpler two-color alternation:
bg-white→bg-neutral-lightgray→bg-white(repeat)
Example sequence:
- Hero/Overview:
bg-white - Main content:
bg-neutral-lightgray - Additional sections:
bg-white
- Never use consecutive sections with the same background color
- Always maintain proper contrast between background and text
- Use
bg-whitefor primary content sections (overview, getting started) - Use
bg-brand-lightfor feature highlights and secondary content - Use
bg-neutral-lightgrayfor supporting content and team sections - Avoid the deprecated
bg-brand-dark/15pattern
- Don't mix different heading styles (e.g.,
section-headingvs inline styles) - Use consistent spacing utilities throughout
- Avoid custom colors outside the defined palette
- Include server-side includes for common components:
<!-- #include file="components/head.html" --> <!-- #include file="components/header.html" --> <!-- #include file="components/footer.html" --> <!-- #include file="components/scripts.html" -->
- Use Tailwind's purge/tree-shaking for production
- Optimize images (prefer WebP format)
- Lazy load images below the fold
- Minimize custom CSS
This style guide should be updated whenever:
- New patterns are introduced
- Existing patterns are modified
- Inconsistencies are discovered
- New components are created