A Jekyll theme gem for CalConnect documentation sites. Provides semantic HTML layouts, AsciiDoc and Markdown content support, and optional Vite + Tailwind CSS integration.
The jekyll-calconnect theme provides a shared design system for all CalConnect
documentation sites, ensuring consistent branding, navigation, and user experience
across calconnect.org, devguide.calconnect.org, and future CalConnect sites.
-
Semantic HTML - Clean, accessible markup with BEM class naming
-
Dark Mode - Built-in theme toggle with system preference detection
-
AsciiDoc & Markdown - Full support for both content formats
-
Responsive Design - Mobile-first approach with sidebar navigation
-
Tailwind CSS 4 - Optional integration for modern styling
-
Extensible - Override any component in your site
Add this line to your Jekyll site’s Gemfile:
gem "jekyll-calconnect", "~> 1.0"And add this line to your Jekyll site’s _config.yml:
theme: jekyll-calconnectThen execute:
bundle installOr install it yourself as:
gem install jekyll-calconnect# _config.yml
theme: jekyll-calconnect
collections:
pages:
output: true
permalink: /:path/
appendixes:
output: true
permalink: /Appendix/:path/
calconnect:
logo: /assets/images/logo-purple.svg
logo_dark: /assets/images/logo-white.svg
organization_name: CalConnect
dark_mode: true| Option | Default | Description |
|---|---|---|
|
|
Path to light mode logo |
|
|
Path to dark mode logo |
|
|
Organization name for copyright |
|
|
Enable dark mode toggle |
|
|
Array of navigation links |
|
|
Call-to-action button URL |
|
|
Call-to-action button text |
| Layout | Description |
|---|---|
|
Base HTML structure with head, header, footer (internal use) |
|
Documentation page with sidebar navigation |
|
Homepage layout with hero section |
|
Simple content wrapper without sidebar |
|
Table of Contents page with recursive listing |
|
Appendix content with sidebar navigation |
---
layout: default
title: Page Title
parent: "/ParentPath" # Parent page path for navigation
mainParent: "SectionName" # Top-level section name for sidebar
parents: "Name:/path;Name2:/path2" # Breadcrumb chain
order: 400 # Sort order in navigation
---The theme supports both Markdown and AsciiDoc content formats.
---
layout: default
title: Getting Started
---
# Getting Started
Content here with standard Markdown syntax.Sites can override any theme file by creating a local version.
your-site/
├── _includes/
│ └── components/
│ └── header.html # Overrides theme's header.htmlThe theme supports dark mode via the html.dark class on the <html> element.
The theme automatically detects system preference and localStorage setting:
if (localStorage.theme === 'dark' ||
(!('theme' in localStorage) &&
window.matchMedia('(prefers-color-scheme: dark)').matches)) {
document.documentElement.classList.add('dark')
}Logo files must be copied from calconnect.org to ensure consistency.
| File | Purpose | Size |
|---|---|---|
|
Light mode logo |
~857 bytes |
|
Dark mode logo |
~854 bytes |
|
Full logo with text (light) |
~3149 bytes |
|
Full logo with text (dark) |
~3143 bytes |
To set up your environment to develop this theme:
# Clone the repository
git clone https://github.com/calconnect/jekyll-calconnect.git
cd jekyll-calconnect
# Install Ruby dependencies
bundle install
# Install Node.js dependencies (for Vite/Tailwind)
npm install
# Run the example site
cd example
bundle exec jekyll serveThe theme is setup just like a regular Jekyll site.
To test modifications, make changes to the files in _layouts/, _includes/,
or _sass/ and preview the changes in the example site.
The theme is available as open source under the terms of the MIT License.