Priority Sidebar Content
This region of the sidebar is first in the DOM order, and will appear above article content in the single-column mobile layout.
Article with Sidebar
This is the .intro paragraph style, used to give extra impact to an opening sentence or two. It can serve as a tagline or short prompt for the content that follows.
Welcome to the Custom Development Cornell Design System (CDS). Below, you'll find a collection of sample content to demonstrate default layout, styling, and functionality. This same content can be used to test your custom designs, and to provide a reference for content contributors. You'll also find a few tips and guidelines along the way.
This welcome section appears within an "Article with Sidebar" region (.region-sidebar), which represents a traditional web page layout. On desktop, the sidebar appears as a single column. However, it is comprised of two sections, which will "split" on mobile, allowing for important content (such as navigation or filters) to appear above the main article, and secondary content to appear below. The desktop sidebar can appear either on the left or right (.sidebar-left or .sidebar-right), and can be tinted to the screen edge with .sidebar-tint.
Below are examples of other basic region and layout options, followed by a general styleguide.
Secondary Sidebar Content
This region of the sidebar is last in the DOM order, and will appear below article content in the single-column mobile layout.
Dark Full-Width Block with Standard Container
At maximum size on desktop screens, the width of content in the standard container (.container) is 1320px.
This paragraph demonstrates how basic text content and links will adapt to light and .dark backgrounds, in various colors of the Cornell palette.
Region Color Variant
Each major background color has a slightly darker variant, activated by including the .tint class.
Full-Width Block with Full-Width Container
The full-width container (.container.container-full) has no maximum width, but still maintains appropriate side gutters at all sizes.
This paragraph demonstrates how basic text content and links will adapt to light and .dark backgrounds, in various colors of the Cornell palette.
Region Color Variant
Each major background color has a slightly darker variant, activated by including the .tint class.
Navy Two-Column
This paragraph demonstrates how basic text content and links will adapt to light and .dark backgrounds, in various colors of the Cornell palette.
Two-Column
This paragraph demonstrates how basic text content and links will adapt to light and .dark backgrounds, in various colors of the Cornell palette.
Region Color Variant
Each major background color has a slightly darker variant, activated by including the .tint class.
Three-Column
This paragraph demonstrates how basic text content and links will adapt to light and .dark backgrounds, in various colors of the Cornell palette.
Three-Column
This paragraph demonstrates how basic text content and links will adapt to light and .dark backgrounds, in various colors of the Cornell palette.
Three-Column
This paragraph demonstrates how basic text content and links will adapt to light and .dark backgrounds, in various colors of the Cornell palette.
Red Four-Column
This paragraph demonstrates how basic text content and links will adapt to light and .dark backgrounds, in various colors of the Cornell palette.
Four-Column
This paragraph demonstrates how basic text content and links will adapt to light and .dark backgrounds, in various colors of the Cornell palette.
Four-Column
This paragraph demonstrates how basic text content and links will adapt to light and .dark backgrounds, in various colors of the Cornell palette.
Four-Column
This paragraph demonstrates how basic text content and links will adapt to light and .dark backgrounds, in various colors of the Cornell palette.
Region Color Variant
Each major background color has a slightly darker variant, activated by including the .tint class.
Even Columns
50% Column
Welcome to the Cornell CSS Framework.
50% Column
Welcome to the Cornell CSS Framework.
Surplus section divs will appear as additional rows.
These rows will have the same proportions.
~33% Column
Welcome to the Cornell CSS Framework.
~33% Column
Welcome to the Cornell CSS Framework.
~33% Column
Welcome to the Cornell CSS Framework.
~25% Column
Welcome to the Cornell CSS Framework.
~25% Column
Welcome to the Cornell CSS Framework.
~25% Column
Welcome to the Cornell CSS Framework.
~25% Column
Welcome to the Cornell CSS Framework.
Proportions
~33% Column
Welcome to the Cornell CSS Framework.
~66% Column
Welcome to the Cornell CSS Framework.
~66% Column
Welcome to the Cornell CSS Framework.
~33% Column
Welcome to the Cornell CSS Framework.
40% Column
Welcome to the Cornell CSS Framework.
60% Column
Welcome to the Cornell CSS Framework.
60% Column
Welcome to the Cornell CSS Framework.
40% Column
Welcome to the Cornell CSS Framework.
25% Column
Welcome to the Cornell CSS Framework.
75% Column
Welcome to the Cornell CSS Framework.
75% Column
Welcome to the Cornell CSS Framework.
25% Column
Welcome to the Cornell CSS Framework.
20% Column
Welcome to the Cornell CSS Framework.
80% Column
Welcome to the Cornell CSS Framework.
80% Column
Welcome to the Cornell CSS Framework.
20% Column
Welcome to the Cornell CSS Framework.
50% Column
Welcome to the Cornell CSS Framework.
25% Column
Welcome to the Cornell CSS Framework.
25% Column
Welcome to the Cornell CSS Framework.
25% Column
Welcome to the Cornell CSS Framework.
50% Column
Welcome to the Cornell CSS Framework.
25% Column
Welcome to the Cornell CSS Framework.
25% Column
Welcome to the Cornell CSS Framework.
25% Column
Welcome to the Cornell CSS Framework.
50% Column
Welcome to the Cornell CSS Framework.
And for more control, .flex-grid is also an option:
.flex-2
.flex-7
.flex-3
.flex-5
.flex-1
.flex-1
.flex-1
.flex-4
.flex-1-5
.flex-1-5
.flex-1-5
.flex-1-5
.flex-1-5
.flex-1-8
.flex-1-8
.flex-1-8
.flex-1-8
.flex-1-8
.flex-1-8
.flex-1-8
.flex-1-8
Priority Sidebar Content
This region of the sidebar is first in the DOM order, and will appear above article content in the single-column mobile layout.
Basic Vertical Navbars
Drupal Menu
WordPress Menu
Styleguide (Heading 1)
This is the .intro paragraph style, used to give extra impact to an opening sentence or two. It can serve as a tagline or short prompt for the content that follows.
A standard paragraph ranges from 16px (on mobile) to 18px (on desktop). This size is suited to the scale of modern fonts like Cornell's Freight Sans Pro. The .small or .large classes can be used to reduce or increase this responsive text size for a container or individual element. The .mini option is very small, and remains the same size at all viewport sizes.
Large Text (18px to 24px)
Medium (Default) (16px to 18px)
Small Text Size (15px to 16px)
Mini Text Size (14px)
Large Serif Text
Medium Serif Text
Small Serif Text Size
Mini Serif Text Size
Light and Dark Regions .dark
The CDS has a built-in system of light and dark regions, with content adapting to the background of its container. "Light" is the default appearance, with black text displayed typically over pure white or a light tint of gray. A "dark" region is activated by applying the .dark class, which automatically switches to a light over dark aesthetic, and retains contrast in other subtle ways.
Text Contrast
Soft text (.soft) is slightly muted from default black.
Dim text (.dim) is faded further, but still provides suitable contrast over white and light gray.
Links and Buttons (and Link Buttons!)
Basic Links
Basic links will use Cornell's accent blue by default, though it's not uncommon to build a section or full design around primary red links instead. The .red class can be applied to a link to choose red directly. Alternatively, .red-links can be applied to a container, which will apply to all links within. Visited links are not distinguished visually by default.
Buttons Galore
The button options below can be mixed and matched (color, size, "classic" look, etc...) and should also be compatible with "Link Buttons" (links presenting as buttons via the .link-button class). Not all variations are shown, and some combinations may not be fully effective (e.g, a border won't be visible over pure black, but may be faintly visible during its active state). Be careful with bordered white and light gray, as these may come to resemble the appearance of a text field. A shadow is applied to the pure white buttons below to make their boundaries visible over the white background.
If an icon span is present (.icon, .fa, or .zmdi), it will inherit the text color of the button with slightly reduced opacity. It will also be positioned with margins suited to an icon on the left of the text. Due to limitations of CSS, we cannot automatically detect when the icon is instead to the right of the text. However, if the text is wrapped in its own <span> tag, to act as a sibling of the icon, CSS can then detect this and adjust the icon margins to suit an icon on the right. Some examples are below.
We have taken to heart the revolutionary spirit that founded our university and encourage each other to pursue unpredicted lines of thinking in order to effect change on local and international scales.
Tablists .ui-tabs
Navbar .ui-tabs.tabs-navbar
Knowledge for the Greater Good
We have taken to heart the revolutionary spirit that founded our university and encourage each other to pursue unpredicted lines of thinking in order to effect change on local and international scales.
Our Profile
As the federal land-grant institution in New York State, we have a responsibility—unique within the Ivy League—to make contributions in all fields of knowledge in a manner that prioritizes public engagement.
Navbar with Lined Bottom .ui-tabs.tabs-navbar.lined-bottom
Knowledge for the Greater Good
We have taken to heart the revolutionary spirit that founded our university and encourage each other to pursue unpredicted lines of thinking in order to effect change on local and international scales.
Our Profile
As the federal land-grant institution in New York State, we have a responsibility—unique within the Ivy League—to make contributions in all fields of knowledge in a manner that prioritizes public engagement.
Classic .ui-tabs.tabs-classic NYI
Knowledge for the Greater Good
We have taken to heart the revolutionary spirit that founded our university and encourage each other to pursue unpredicted lines of thinking in order to effect change on local and international scales.
Our Profile
As the federal land-grant institution in New York State, we have a responsibility—unique within the Ivy League—to make contributions in all fields of knowledge in a manner that prioritizes public engagement.
Accordions (<details>)
An optional .animate class can be included on a direct child container of the <details> tag. This container will fade in when opened. If the class .slide-down is also included, the animation will include a subtle sliding effect. The slide-down option is used in the Expanding Menu examples below.
Wrapping multiple <details> tags in an .accordion-set container will cause JavaScript to generate an "expand all" button for this set of accordions. When opening all accordions with this button, any animations will be omitted.
Multiple <details> tags that share a name attribute will act as a single-select group (only one accordion in the group can be open at a time, with others closing automatically if a new one is opened).
- While this behavior is part of the
<details>tag specification, it is fairly new as of 2024, and may not yet be supported natively by all browsers. To ensure consistent functionality on all browsers, it has been implemented with custom JavaScript instead. - Single-select groups are fundamentally compatible with "expand all" functionality, but it is recommended that you only use this combination with caution, as the UX may be a bit at odds with itself. Depending on the accordion style chosen, it may also be worth considering whether animated reveals are helpful or a hinderance to the visual communication of single-select behavior.
Default Style
Big Red Bear's Dining Picks
Gimme Coffee Gates Hall Dessert Alerts - Never miss another Apple Brown Butter Bar!
Pizza Alerts! - From Big Red sauce to garlic pesto, we've got you covered!
More Big Red Bear Picks
Gimme Coffee Gates Hall Dessert Alerts - Never miss another Apple Brown Butter Bar!
Pizza Alerts! - From Big Red sauce to garlic pesto, we've got you covered!
Never Enough Big Red Bear Picks
Gimme Coffee Gates Hall Dessert Alerts - Never miss another Apple Brown Butter Bar!
Pizza Alerts! - From Big Red sauce to garlic pesto, we've got you covered!
Nested Accordion
Gimme Coffee Gates Hall Dessert Alerts - Never miss another Apple Brown Butter Bar!
Pizza Alerts! - From Big Red sauce to garlic pesto, we've got you covered!
Compact Style .compact (can also be used on the .accordion-set container)
Big Red Bear's Dining Picks
Gimme Coffee Gates Hall Dessert Alerts
Pizza Alerts!
More Big Red Bear Picks
Gimme Coffee Gates Hall Dessert Alerts
Pizza Alerts!
Never Enough Big Red Bear Picks
Gimme Coffee Gates Hall Dessert Alerts
Pizza Alerts!
Classic Style .classic (can also be used on the .accordion-set container)
Big Red Bear's Dining Picks
Gimme Coffee Gates Hall Dessert Alerts - Never miss another Apple Brown Butter Bar!
More Big Red Bear Picks
Pizza Alerts! - From Big Red sauce to garlic pesto, we've got you covered!
Never Enough Big Red Bear Picks
Manndible Remembrance Society - Remembering Cornell's greatest café! Share your stories and favorite barista specials with fellow Manndible enthusiasts.
Nested Accordion
Nested Accordion Content
Simple Style .simple (can also be used on the .accordion-set container)
Big Red Bear's Dining Picks
Gimme Coffee Gates Hall Dessert Alerts - Never miss another Apple Brown Butter Bar!
More Big Red Bear Picks
Pizza Alerts! - From Big Red sauce to garlic pesto, we've got you covered!
Never Enough Big Red Bear Picks
Manndible Remembrance Society - Remembering Cornell's greatest café! Share your stories and favorite barista specials with fellow Manndible enthusiasts.
Expanding Menu .menu (add .mobile-only to only apply to mobile sizes)
.mobile-only to only apply to mobile sizes)When open, the accordion will be tinted for visual separation, but the utility class .no-background can override this for a cleaner look.
Basic Vertical Menu
Menu with No Background
Drupal Section Navigation
Single-Select (sharing the same name attribute)
While single-select groups are fundamentally compatible with "expand all" functionality, it is recommended that you only use this combination with caution, as the UX may be a bit at odds with itself. Depending on the accordion style chosen, it may also be worth considering whether animated reveals are helpful or a hinderance to the visual communication of single-select behavior.
If nested accordions appear within a single-select group, the nested accordions should not include the name attribute. Otherwise, they might close their own parent when opened!
Big Red Bear's Dining Picks
Gimme Coffee Gates Hall Dessert Alerts - Never miss another Apple Brown Butter Bar!
More Big Red Bear Picks
Pizza Alerts! - From Big Red sauce to garlic pesto, we've got you covered!
Never Enough Big Red Bear Picks
Manndible Remembrance Society - Remembering Cornell's greatest café! Share your stories and favorite barista specials with fellow Manndible enthusiasts.
Modal Dialog (<dialog.ui-modal>)
@TODO [aria-modal="true"]
Styleguide
This is the .intro paragraph style, used to give extra impact to an opening sentence or two. It can serve as a tagline or short prompt for the content that follows.
This paragraph demonstrates how basic text content and links will adapt to light and .dark backgrounds, in various colors of the Cornell palette.
Heading Styles
Main Content Page Heading (Heading 1)
Basic paragraph text for comparison lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi aliquam fermentum lacus, ut sagittis dui porttitor vitae. Fusce id tellus libero.
Primary Section Title (Heading 2)
Hint: The H2 accent color (red by default) is a customizable Sass variable in _cwd-variables.scss. A similar option is available for H3, though it is set to black by default.
Accent Heading h2.bigred
Heading with Small Caps Heading with Small Caps
Heading with Petite Caps Heading with Petite Caps
Heading with All Small Caps Heading with All Small Caps
Primary Section Title (Heading 2)
Hint: The H2 accent color (red by default) is a customizable Sass variable in _cwd-variables.scss. A similar option is available for H3, though it is set to black by default.
Secondary Section Title (Heading 3)
Accent Heading h3.bigred
Basic paragraph text for comparison lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi aliquam fermentum lacus, ut sagittis dui porttitor vitae. Fusce id tellus libero.
Tertiary Section Title (Heading 4)
Accent Heading h4.bigred
Basic paragraph text for comparison lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi aliquam fermentum lacus, ut sagittis dui porttitor vitae. Fusce id tellus libero.
Subsection Title (Heading 5)
Basic paragraph text for comparison lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi aliquam fermentum lacus, ut sagittis dui porttitor vitae. Fusce id tellus libero.
Subsection Title (Heading 6)
Basic paragraph text for comparison lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi aliquam fermentum lacus, ut sagittis dui porttitor vitae. Fusce id tellus libero.
Horizontal Rules
Note: The latest W3C HTML5 Specification changes the semantic definition of the <HR> tag, to represent a "thematic break," rather than a traditional stylistic divider. However, we expect that most content contributors will continue to use them in their traditional way, so the following options are provided:
Default
Teal .accent1
Blue .accent2
Purple .accent3
Gold .accent4
Green .accent5
Invisible .invisible (no visible line, spacer only)
Dotted .dotted
Dashed .dashed
Double .double
Heavy .heavy (can be paired with any accent above except "double")
Extra-Heavy .extra-heavy (can be paired with any accent above except "double")
Faded .fade (can be paired with any style)
Flourish .flourish (replace with your own vector logo or seal, default seal requires SVG support)
Cornell Icon .bigred (requires SVG support)
Images, Figures, Asides (<img>, <figure>, <aside>)
<figure> tag to give them margined placement between block elements. An optional caption can be added using the <figcaption> tag.
Images may be placed within paragraphs or between them. One or more <img> tags may also be wrapped in a <figure> tag, and optionally accompanied by a <figcaption> tag. The W3C HTML5 Specification states that figure content should be self-contained, and able to be moved away from the main flow of the document without affecting the document's meaning. In other words, the figure is directly related to the article, but it is not dependent on a specific placement within the article. It can stand alone.
Most images used within an article fit the definition of figure content, especially if a caption is included. However, it may make sense to omit the figure tag in some cases, such as when an image's meaning is directly dependent on nearby text.
Alignment Options
Alignment classes can be applied to <img> or <figure> tags (and potentially other block elements within the main article). They will be sized fluidly, at up to 40% of container width. However, images will only be scaled down, not up. Small images will not be scaled up if their HTML width (e.g., <img src="bigredbear.gif width="100"> is less than 40% of the container. This allows for the use of different images sizes, without blurry upscaling or unnecessary waste of space. However, to take advantage of high-density phone and tablet displays, it is still recommended that small images be twice as large natively as their HTML width (i.e., the bigredbear.gif image above should be 200px natively, to display sharply at 100px).
Align Left .align-left
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi aliquam fermentum lacus, ut sagittis dui porttitor vitae. Fusce id tellus libero. In vitae libero sit amet velit lobortis congue in eu velit. Mauris venenatis, nisi vitae ultricies semper, leo dolor porta risus, vitae molestie magna sapien iaculis nibh. Etiam facilisis mauris sed arcu tempus vel dapibus dui molestie. Morbi vitae lacus metus, vel porttitor eros. Duis sed consectetur ipsum. Curabitur et velit in ante dignissim scelerisque. Duis non ipsum at mi pharetra consequat. Quisque eu tortor non ipsum laoreet feugiat. Sed blandit volutpat ligula, fermentum aliquet lectus convallis at. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi aliquam fermentum lacus, ut sagittis dui porttitor vitae. Fusce id tellus libero. In vitae libero sit amet velit lobortis congue in eu velit. Mauris venenatis, nisi vitae ultricies semper, leo dolor porta risus, vitae molestie magna sapien iaculis nibh. Etiam facilisis mauris sed arcu tempus vel dapibus dui molestie.
Align Right .align-right
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi aliquam fermentum lacus, ut sagittis dui porttitor vitae. Fusce id tellus libero. In vitae libero sit amet velit lobortis congue in eu velit. Mauris venenatis, nisi vitae ultricies semper, leo dolor porta risus, vitae molestie magna sapien iaculis nibh. Etiam facilisis mauris sed arcu tempus vel dapibus dui molestie. Morbi vitae lacus metus, vel porttitor eros. Duis sed consectetur ipsum. Curabitur et velit in ante dignissim scelerisque. Duis non ipsum at mi pharetra consequat. Quisque eu tortor non ipsum laoreet feugiat. Sed blandit volutpat ligula, fermentum aliquet lectus convallis at. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi aliquam fermentum lacus, ut sagittis dui porttitor vitae. Fusce id tellus libero. In vitae libero sit amet velit lobortis congue in eu velit. Mauris venenatis, nisi vitae ultricies semper, leo dolor porta risus, vitae molestie magna sapien iaculis nibh. Etiam facilisis mauris sed arcu tempus vel dapibus dui molestie.
Maintain Alignment on Mobile .align-mobile
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi aliquam fermentum lacus, ut sagittis dui porttitor vitae. Fusce id tellus libero. In vitae libero sit amet velit lobortis congue in eu velit. Mauris venenatis, nisi vitae ultricies semper, leo dolor porta risus, vitae molestie magna sapien iaculis nibh. Etiam facilisis mauris sed arcu tempus vel dapibus dui molestie. Morbi vitae lacus metus, vel porttitor eros. Duis sed consectetur ipsum. Curabitur et velit in ante dignissim scelerisque. Duis non ipsum at mi pharetra consequat. Quisque eu tortor non ipsum laoreet feugiat. Sed blandit volutpat ligula, fermentum aliquet lectus convallis at. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi aliquam fermentum lacus, ut sagittis dui porttitor vitae. Fusce id tellus libero. In vitae libero sit amet velit lobortis congue in eu velit. Mauris venenatis, nisi vitae ultricies semper, leo dolor porta risus, vitae molestie magna sapien iaculis nibh. Etiam facilisis mauris sed arcu tempus vel dapibus dui molestie.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi aliquam fermentum lacus, ut sagittis dui porttitor vitae. Fusce id tellus libero. In vitae libero sit amet velit lobortis congue in eu velit. Mauris venenatis, nisi vitae ultricies semper, leo dolor porta risus, vitae molestie magna sapien iaculis nibh. Etiam facilisis mauris sed arcu tempus vel dapibus dui molestie. Morbi vitae lacus metus, vel porttitor eros. Duis sed consectetur ipsum. Curabitur et velit in ante dignissim scelerisque. Duis non ipsum at mi pharetra consequat. Quisque eu tortor non ipsum laoreet feugiat. Sed blandit volutpat ligula, fermentum aliquet lectus convallis at.
Etiam facilisis mauris sed arcu tempus vel dapibus dui molestie. Morbi vitae lacus metus, vel porttitor eros. Duis sed consectetur ipsum. Curabitur et velit in ante dignissim scelerisque. Duis non ipsum at mi pharetra consequat. Quisque eu tortor non ipsum laoreet feugiat. Sed blandit volutpat ligula, fermentum aliquet lectus convallis at.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi aliquam fermentum lacus, ut sagittis dui porttitor vitae. Fusce id tellus libero. In vitae libero sit amet velit lobortis congue in eu velit. Mauris venenatis, nisi vitae ultricies semper, leo dolor porta risus, vitae molestie magna sapien iaculis nibh. Etiam facilisis mauris sed arcu tempus vel dapibus dui molestie. Morbi vitae lacus metus, vel porttitor eros. Duis sed consectetur ipsum. Curabitur et velit in ante dignissim scelerisque. Duis non ipsum at mi pharetra consequat. Quisque eu tortor non ipsum laoreet feugiat. Sed blandit volutpat ligula, fermentum aliquet lectus convallis at.
Etiam facilisis mauris sed arcu tempus vel dapibus dui molestie. Morbi vitae lacus metus, vel porttitor eros. Duis sed consectetur ipsum. Curabitur et velit in ante dignissim scelerisque. Duis non ipsum at mi pharetra consequat. Quisque eu tortor non ipsum laoreet feugiat. Sed blandit volutpat ligula, fermentum aliquet lectus convallis at.
Multiple Images in One Figure
Use the .two-col, .three-col, or .four-col classes to instruct a <figure> tag to display images side-by-side. Add .margined to include a small margin between them. Take special care not to apply the .margarined class by mistake. This would result in an oily mess.
<figure>, sharing the same <figcaption>. They are also free of margarine.
<figure> is aligned left, so it should probably hold no more than two columns.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi aliquam fermentum lacus, ut sagittis dui porttitor vitae. Fusce id tellus libero. In vitae libero sit amet velit lobortis congue in eu velit. Mauris venenatis, nisi vitae ultricies semper, leo dolor porta risus, vitae molestie magna sapien iaculis nibh. Etiam facilisis mauris sed arcu tempus vel dapibus dui molestie. Morbi vitae lacus metus, vel porttitor eros. Duis sed consectetur ipsum. Curabitur et velit in ante dignissim scelerisque. Duis non ipsum at mi pharetra consequat. Quisque eu tortor non ipsum laoreet feugiat. Sed blandit volutpat ligula, fermentum aliquet lectus convallis at. Mauris venenatis, nisi vitae ultricies semper, leo dolor porta risus, vitae molestie magna sapien iaculis nibh. Etiam facilisis mauris sed arcu tempus vel dapibus dui molestie.
Cornell.edu Icons
Include fonts/cornell-custom.css to use Cornell.edu's custom icon font:
- .icon-arrow-down
- .icon-arrow-left
- .icon-arrow-right
- .icon-arrow-thin-right
- .icon-arrow-up
- .icon-check
- .icon-clear-day
- .icon-clear-night
- .icon-clocktower
- .icon-clocktower-bold
- .icon-close
- .icon-email
- .icon-facebook
- .icon-fog
- .icon-info-alert
- .icon-info-heart
- .icon-info-news
- .icon-info-pawprint
- .icon-instagram
- .icon-logo
- .icon-menu
- .icon-overcast
- .icon-partly-cloudy-day
- .icon-partly-cloudy-night
- .icon-plus
- .icon-rain
- .icon-reset
- .icon-search
- .icon-search-big
- .icon-sleet
- .icon-snow
- .icon-submenu
- .icon-thunderstorm
- .icon-twitter
- .icon-windy
- .icon-youtube
Inline Styles
There are various ways to highlight or emphasize text within a paragraph. Traditional <strong> and <em> tags can be used for basic bold and italic styling. There are also special CSS classes that can be added to these tags, or to <span> tags, to apply a more distinctive appearance. One example used throughout this document is strong.tutorial, which produces bold, green text to draw attention to important terms such as labels, values, tips, or steps in a process.
Text Highlights
Five basic highlight colors are provided, with the classes .text-highlight-red, .text-highlight-green, .text-highlight-yellow, .text-highlight-blue, and .text-highlight-purple. These classes can be applied to <span> tags, or to an HTML5 newcomer, the <mark> tag. The default mark tag is bright yellow, while the five highlight colors below are a bit more muted but still easy to pick out from a white background. Lorem ipsum dolor sit amet. Fusce id tellus libero. In vitae libero sit amet velit lobortis congue in eu velit. Mauris venenatis, nisi vitae ultricies semper, leo dolor porta risus, vitae molestie magna sapien iaculis nibh. Etiam facilisis mauris sed arcu tempus vel dapibus dui molestie. Morbi vitae lacus metus, vel porttitor eros. Duis sed consectetur ipsum. Curabitur et velit in ante dignissim scelerisque. Duis non ipsum at mi pharetra consequat. Quisque eu tortor non ipsum laoreet feugiat. Sed blandit volutpat ligula, dui nec eros varius ac molestie ante malesuada. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi aliquam fermentum lacus, ut sagittis dui porttitor vitae. Donec congue dui at velit consectetur fermentum. Fusce id tellus libero. Donec congue dui at velit consectetur fermentum.
Blockquote
A blockquote element has traditionally been used to display long quotations (including pull quotes from within the current document). However, the latest W3C HTML5 Specification refines this definition. The quote should be from another source (typically another web page), and optionally include the address of this source in a <cite> or <footer> tag (or both, as seen in the example below).
Standard Blockquote
The
blockquoteelement represents content that is quoted from another source, optionally with a citation which must be within afooterorciteelement, and optionally with in-line changes such as annotations and abbreviations.Content inside a
blockquoteother than citations and in-line changes must be quoted from another source, whose address, if it has one, may be cited in the cite attribute.
Hint: By default, blockquotes will not automatically display quotation marks. They can be typed in manually, but another option is to use the <q> tag:
The content of this paragraph is also wrapped within a<q>tag. In addition to rendering quotation marks, you'll notice that the opening quote is offset to the left, allowing the first line of text to cleanly align with additional lines below it. Lines aligned!
Impact Blockquote .impact
This option displays text at a larger size and in a contrasting font. It is best used for short quotes.
Some have called Cornell the “first American university.”
Offset Blockquote .offset
Like the impact blockquote, this option displays text at a larger size and in a contrasting font. It also floats the blockquote to one side, and extends into the side margin for extra visual contrast. The .offset and .impact options look the same on small screens. The offset will only occur on larger screens with side margins to accomodate it.
Some have called Cornell the “first American university.”
Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Donec sed odio dui. Sed posuere consectetur est at lobortis. Nulla vitae elit libero, a pharetra augue. Nullam quis risus eget urna mollis ornare vel eu leo. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Curabitur blandit tempus porttitor. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Aenean lacinia bibendum nulla sed consectetur.
Note: This option is compatible with .sidebar-left, but is better suited to .sidebar-right or full-width content.
Preformatted Text <pre>, <xmp>, <plaintext>, <listing>
pre {
padding: 1em 2em;
background: hotpink;
}
More Styled Elements
title attribute.<b>) have made a comeback. In comparison, <strong> is for "a span of text with strong importance", while <b> is for text "offset from its surrounding content without conveying any extra emphasis or importance, and for which the conventional typographic presentation is bold text". When deciding which to use, stick with strong unless the text is not meant to have any special impact, and is only bold as a literary convention. (This distinction is somewhat subjective, so don't sweat it too much! Practically speaking, either is fine.)<i>). <em> is for "a span of text with emphatic stress", while <i> is for text "offset from its surrounding content without conveying any extra emphasis or importance, and for which the conventional typographic presentation is italic text". When deciding which to use, stick with em unless text is not meant to stand out, and is only italic as a literary convention.<blockquote>, but also valid anywhere in the flow of a document.Code Fragment<pre> (preformatted text) tag instead.Panels and Accent Options
Content can be wrapped in containers to create visual groupings, or to draw attention to special notes or messages. The CSS classes used below can be applied to regular <DIV> tags, or to specialized tags like <ASIDE>, <SECTION>, and possibly others. Aside tags should be used when the content fits the W3C HTML5 Specification (aside content should be secondary, but related to the nearby flow of information). Section tags can be used to wrap information that forms a thematic group (one which would be appropriate in a document outline). See the W3C HTML5 Specification and W3C Wiki for more information.
Panels
Hint: All options below can be mixed and matched. Use the .no-border class to omit the default 1px border, or .no-background for a transparent background.
Default Gray (class="panel")
Pure White (class="panel accent-white")
Teal (class="panel accent-teal")
Blue (class="panel accent-blue")
Purple (class="panel accent-purple")
Gold (class="panel accent-gold")
Green (class="panel accent-green")
Red (class="panel accent-red")
Light Colors
Light Gray (class="panel accent-light-gray")
Light Teal (class="panel accent-light-teal")
Light Blue (class="panel accent-light-blue")
Light Purple (class="panel accent-light-purple")
Light Gold (class="panel accent-light-gold")
Light Green (class="panel accent-light-green")
Light Red (class="panel accent-light-red")
Heavy Border (left or top, with or without fills)
Default (class="panel heavy-left")
Teal (class="panel accent-teal heavy-left no-background")
Blue (class="panel accent-blue heavy-left")
Purple (class="panel accent-purple heavy-top no-background")
Gold (class="panel accent-gold heavy-top")
Green (class="panel accent-green heavy-top no-background")
Red (class="panel accent-red heavy-top")
Indenting
Indent 1 Step (class="panel indent1")
Indent 2 Steps (class="panel indent2")
Indent 3 Steps (class="panel indent3")
Indent 4 Steps (class="panel indent4")
Padding, Border, Background, Shadow
Extra Padding (class="panel padded")
White, No Border, Box Shadow (class="panel accent-white no-border shadow")
No Padding, No Border, No Background (class="panel no-padding no-border no-background")
Pills .pill
The Panels system, particularly its accent colors, can also be used for "pills," which are compact versions intended for small fragments of text. A common use for pills is to visualize metadata (tags, categories, etc...), making them easier to recognize. Pills use the class .pill instead of , and can be used on .panel<DIV> or <SPAN> tags as appropriate. They can also be interactive elements, as <A>, <BUTTON>, or <SPAN role="button"> tags.
Default Gray Pure White Teal Blue Purple Gold Green Red
Light Gray Light Teal Light Blue Light Purple Light Gold Light Green Light Red
Default Teal Blue Purple Gold Green Red
Link Link, No-Deco Button Role Teal Button Blue Button Purple Button Gold Button Green Button Red Button
Lists
Unordered List
Example 1
- List Item
- List Item
- Nested List Item
- Nested List Item
- Double Nested:
- Nested List Item
- Nested List Item
- Nested List Item
- Nested List Item
- List Item
Example 2
- List Item
- Nested Ordered:
- Nested List Item
- Nested Unordered List Item
- Nested Unordered List Item
- Nested List Item
- Nested List Item
- Linked List Item
- List Item
Ordered Lists
Numbering options for ordered lists can be defined with the traditional type attribute, or via CSS classes. Some options, like Decimal with Leading Zero are only available via CSS. For fonts like Freight Sans, with non-lining numerals, the lnum utility class can be used for cleaner alignment. Big Red Bear in mind, however, that this will also apply to content within the list item.
Default (with .lnum)
- List Item 123
- List Item 456
- List Item 789
Leading Zero (only via CSS)
- List Item 123
- List Item 456
- List Item 789
Lowercase Alpha
- List Item
- List Item
- List Item
Uppercase Alpha
- List Item
- List Item
- List Item
Lowercase Roman
- List Item
- List Item
- List Item
Uppercase Roman
- List Item
- List Item
- List Item
Definition List
- Definition Term One
- Definition ipsum dolor sit amet.
- Definition Term Two
- Definition morbi aliquam ut fermentum lacus.
- Third Definition Term
- Definition sagittis dui porttitor vitae.
Custom Unordered List
Icon-driven bullets can be used for higher visual impact. The .custom class on its own will only apply to direct children in the list structure, allowing finer control (custom bullets are often best-suited to single-level lists). In a case where you'd like the icons to appear for all nested list items as well, include the .recursive class. It will apply to all Unordered List descendants, but will not apply to any Ordered Lists that are mixed in. By default, Custom Unordered List bullets use a ■ (red square). A few other example are provided below, using glyphs from an icon font (FontAwesome or Material Design Iconic) or from emoji.
Simple (ul.custom)
- List item ipsum dolor sit amet, consectetur adipiscing elit. Morbi aliquam fermentum lacus, ut sagittis dui porttitor vitae.
- List Item
- Nested Ordered:
- Nested List Item
- Nested Unordered List Item
- Nested Unordered List Item
- Nested List Item
- Nested List Item
- List Item
Recursive (ul.custom.recursive)
- List item ipsum dolor sit amet, consectetur adipiscing elit. Morbi aliquam fermentum lacus, ut sagittis dui porttitor vitae.
- List Item
- Nested Ordered:
- Nested List Item
- Nested Unordered List Item
- Nested Unordered List Item
- Nested List Item
- Nested List Item
- List Item
Inline (ul.custom.inline)
- List item ipsum dolor sit amet
- List Item
- List Item
- List Item
- List Item
- List Item
- List Item
- List Item
- List Item
No Bullet (ul.custom.no-bullet)
- List Item in Stealth Mode
- List Item in Stealth Mode
Chevrons (ul.custom.chevrons)
- List item ipsum dolor sit amet, consectetur adipiscing elit. Morbi aliquam fermentum lacus, ut sagittis dui porttitor vitae.
- List Item
Cornell.edu-style (ul.custom.cu or ul.cu-list)
Smaller red squares with top-level indenting, in the style of Cornell's main site. This list style is automatically recursive.
- List item ipsum dolor sit amet, consectetur adipiscing elit. Morbi aliquam fermentum lacus, ut sagittis dui porttitor vitae.
- List Item
- Nested List Item
- Nested List Item
- Nested List Item
- List Item
A typical CU list with compact, medium-weight links, and no text-decoration:
- Board of Trustees
- Office of the President
- Office of the Provost
- Diversity & Inclusion
- Faculty Senate
Nerdy List (ul.custom.nerd)
Emoji can be used as well, as seen in the example below. Just remember that artwork for emoji characters varies across different operating systems.
- A nerdy list item.
- A nerdy list item.
- Not a nerdy item. (how'd this get in here?)
- A nerdy item once more. (thank goodness!)
Custom Ordered List
Prominent numbered bullets can be used to communicate an emphasized sense of sequence. Custom Ordered Lists follow the same recursion rules as Unordered Lists above. They utilize styled typography and automatic numbering.
Simple (ol.custom)
- List item ipsum dolor sit amet, consectetur adipiscing elit. Morbi aliquam fermentum lacus, ut sagittis dui porttitor vitae.
- List Item
- Nested Unordered:
- Nested List Item
- Nested Ordered List Item
- Nested Ordered List Item
- Nested List Item
- Nested List Item
- List Item
Recursive (ol.custom.recursive)
- List item ipsum dolor sit amet, consectetur adipiscing elit. Morbi aliquam fermentum lacus, ut sagittis dui porttitor vitae.
- List Item
- Nested Unordered:
- Nested List Item
- Nested Ordered List Item
- Nested Ordered List Item
- Nested List Item
- Nested List Item
- List Item
Inline (ol.custom.inline)
- List item ipsum dolor sit amet
- List Item
- List Item
- List Item
- List Item
- List Item
- List Item
- List Item
- List Item
Large (ol.custom.large)
- List item ipsum dolor sit amet, consectetur adipiscing elit. Morbi aliquam fermentum lacus, ut sagittis dui porttitor vitae adipiscing elit.
- List item ipsum dolor sit amet, consectetur adipiscing elit. Morbi aliquam fermentum lacus, ut sagittis dui porttitor vitae adipiscing elit.
- List item ipsum dolor sit amet, consectetur adipiscing elit. Morbi aliquam fermentum lacus, ut sagittis dui porttitor vitae adipiscing elit.
Lists as Menus
The .list-menu system quickly removes bullets and adjusts the layout of list items to fit many common use-cases.
Basic
List Menu (ul.list-menu)
Vertical List Menu (ul.list-menu.vertical)
With Dividers
List Menu (ul.list-menu.divs)
Vertical List Menu (ul.list-menu.vertical.divs)
With Button Links
List Menu (ul.list-menu.links)
Vertical List Menu (ul.list-menu.vertical.links)
Tables
To minimize incompatibility with other table-based functionality, custom styles are only applied to tables which include a class. While options are included for borderless tables, a cell border will always be included when printed, since background colors are commonly omitted when printing from a web browser.
.table
CSS Class Options TABLE.class
.table- The base class needed to activate custom styles. Nothing below will work without it..bordered- Activates full bordering on all table cells for a traditional spreadsheet look (mutually exclusive with .flat)..flat- Removes all borders, relying instead on subtle tinting (mutually exclusive with .bordered)..striped- Applies an alternating row tint for easier readability. This option can be paired with all other options (bordered, flat, colored, etc)..colored- Applies a subtle blue color palette with gray row headers. Lookin sharp!.rainbow- Applies a not-so-subtle multi-color palette in which columns cycle through five colors for easier differentiation. While a bit whimsical in its default appearance, it can provide a model by which the:nth-childconfiguration is altered to communicate a data relationship by grouping columns together visually (e.g., the first two columns might be blue and have a shared header, the next three are white with simple table data, and the last is yellow differentiating it somehow from the nearby white columns)..compact- Lessens the font size and padding of table cells, allowing slightly more data to fit the space..sectioned- If multiple<tbody>tags are used, this class creates a visual gap between them. The practical use of this is to break a table into sections visually without needing to use multiple tables.
Examples
| Col 1 | Col 2 | Col 3 | |
|---|---|---|---|
| Row 1 | R1 C1 | R1 C2 | R1 C3 |
| Row 2 | R2 C1 | R2 C2 | R2 C3 |
| Row 3 | R3 C1 | R3 C2 | R3 C3 |
| Col 1 | Col 2 | Col 3 | |
|---|---|---|---|
| Row 1 | R1 C1 | R1 C2 | R1 C3 |
| Row 2 | R2 C1 | R2 C2 | R2 C3 |
| Row 3 | R3 C1 | R3 C2 | R3 C3 |
| Col 1 | Col 2 | Col 3 | |
|---|---|---|---|
| Row 1 | R1 C1 | R1 C2 | R1 C3 |
| Row 2 | R2 C1 | R2 C2 | R2 C3 |
| Row 3 | R3 C1 | R3 C2 | R3 C3 |
| Col 1 | Col 2 | Col 3 | |
|---|---|---|---|
| Row 1 | R1 C1 | R1 C2 | R1 C3 |
| Row 2 | R2 C1 | R2 C2 | R2 C3 |
| Row 3 | R3 C1 | R3 C2 | R3 C3 |
| Row 4 | R4 C1 | R4 C2 | R4 C3 |
| Row 5 | R5 C1 | R5 C2 | R5 C3 |
| Col 1 | Col 2 | Col 3 | |
|---|---|---|---|
| Row 1 | R1 C1 | R1 C2 | R1 C3 |
| Row 2 | R2 C1 | R2 C2 | R2 C3 |
| Row 3 | R3 C1 | R3 C2 | R3 C3 |
| Row 4 | R4 C1 | R4 C2 | R4 C3 |
| Row 5 | R5 C1 | R5 C2 | R5 C3 |
| Col 1 | Col 2 | Col 3 | |
|---|---|---|---|
| Row 1 | R1 C1 | R1 C2 | R1 C3 |
| Row 2 | R2 C1 | R2 C2 | R2 C3 |
| Row 3 | R3 C1 | R3 C2 | R3 C3 |
| Col 1 | Col 2 | Col 3 | |
|---|---|---|---|
| Row 1 | R1 C1 | R1 C2 | R1 C3 |
| Row 2 | R2 C1 | R2 C2 | R2 C3 |
| Row 3 | R3 C1 | R3 C2 | R3 C3 |
| Col 1 | Col 2 | Col 3 | Col 4 | Col 5 | Col 6 | Col 7 |
|---|---|---|---|---|---|---|
| R1 C1 | R1 C2 | R1 C3 | R1 C4 | R1 C5 | R1 C6 | R1 C7 |
| R2 C1 | R2 C2 | R2 C3 | R2 C4 | R2 C5 | R2 C6 | R2 C7 |
| R3 C1 | R3 C2 | R3 C3 | R3 C4 | R3 C5 | R3 C6 | R3 C7 |
| R4 C1 | R4 C2 | R4 C3 | R4 C4 | R4 C5 | R4 C6 | R4 C7 |
| R5 C1 | R5 C2 | R5 C3 | R5 C4 | R5 C5 | R5 C6 | R5 C7 |
| Col 1 | Col 2 | Col 3 | Col 4 | Col 5 | Col 6 | Col 7 | |
|---|---|---|---|---|---|---|---|
| Row 1 | R1 C1 | R1 C2 | R1 C3 | R1 C4 | R1 C5 | R1 C6 | R1 C7 |
| Row 2 | R2 C1 | R2 C2 | R2 C3 | R2 C4 | R2 C5 | R2 C6 | R2 C7 |
| Row 3 | R3 C1 | R3 C2 | R3 C3 | R3 C4 | R3 C5 | R3 C6 | R3 C7 |
| Row 4 | R4 C1 | R4 C2 | R4 C3 | R4 C4 | R4 C5 | R4 C6 | R4 C7 |
| Row 5 | R5 C1 | R5 C2 | R5 C3 | R5 C4 | R5 C5 | R5 C6 | R5 C7 |
| Col 1 | Col 2 | |||
|---|---|---|---|---|
| Col 2a | Col 2b | |||
| Row 1 | Row 1a | R1a C1 | R1a C2a | R1a C2b |
| Row 1b | R1b C1 | R1b C2a | R1b C2b | |
| Row 2 | R2 C1 | R2 C2a | R2 C2b | |
| Col 1 | Col 2 | Col 3 | |
|---|---|---|---|
| Row 1 | R1 C1 | R1 C2 | R1 C3 |
| Row 2 | R2 C1 | R2 C2 | R2 C3 |
| Row 1 | R1 C1 | R1 C2 | R1 C3 |
| Row 2 | R2 C1 | R2 C2 | R2 C3 |
| Row 1 | R1 C1 | R1 C2 | R1 C3 |
| Row 2 | R2 C1 | R2 C2 | R2 C3 |
Columns and Grid System
You can apply a .two-col, .three-col, or .four-col class to most containers, to distribute their direct child nodes evenly in two, three, or four simple columns. This is the easiest way to render columns without the need for special HTML markup. Rows are maintained even when nodes are different heights (as seen in the Four Column example below).
Two Even Columns
Three Even Columns
Four Even Columns
Columns with Padding (.padded)
Add a .padded class to any of the above options to include a gap (gutter) between columns.
Flexbox Grid (.flex-grid)
A 12-column flexbox-based grid is also available for more advanced layouts. Applying the .flex-grid class to a container will activate flexbox behavior and unlock column sizes of 1 to 12 for direct children (.flex-*). For example, a .flex-3 class applies a width of 25% (3/12) to the grid item, while .flex-4 applies a width of ~33.3% (4/12).
Notes/Behaviors
- Grid items will display in a single column on mobile. To better accomodate a wide range of layouts (especially forms), the breakpoint at which the
.flex-gridactivates is834px. Note that this is higher than the more common768pxused by other responsive layouts in the CSS Framework. Additionally,.flex-gridlayouts inside a<form>tag will not activate until1024pxsince form elements are more sensitive to space contraints. - For modern browsers, a container query is used to apply an additional constraint, allowing the grid to activate sooner in full-width regions and later in smaller regions (such as when a sidebar is present).
- A
.flex-12class is not needed to apply 100% width. Grid items will display at 100% width by default. - In addition to sizes of
.flex-1through.flex-11, two specialty sizes are available:.flex-1-5(20%) and.flex-1-8(12.5%). - Grid items will drop to the next row if there isn't enough room for the width specified, leaving an empty space. In general, the math of each row should always add up to 12 (100%).
- Horizontal Rules (
<hr>) can be used as dividers between rows (an example is below).
Container Classes
.padded- Child elements have horizontal (left and right) padding by default. This class applies vertical padding to match..collapse-rows- This class removes the vertical margin between rows..compact-rows- This class greatly reduces the vertical margin between rows..collapse-cols- This class removes the horizontal padding (effectively the margin) between child elements.
In many of the example below, the .demo-mode class is used only to outline and color-tint cells for easier viewing and testing, and should be removed once grids are configured.
Basic Column Grids
Nested
Collapse Rows
.flex-2
.flex-7
.flex-3
.flex-5
.flex-1
.flex-1
.flex-1
.flex-4
Compact Rows
.flex-2
.flex-7
.flex-3
.flex-5
.flex-1
.flex-1
.flex-1
.flex-4
Collapse Rows and Padded
.flex-2
.flex-7
.flex-3
.flex-5
.flex-1
.flex-1
.flex-1
.flex-4
Collapse Rows and Columns
.flex-2
.flex-7
.flex-3
.flex-5
.flex-1
.flex-1
.flex-1
.flex-4
Grid with <hr> Dividers
.flex-3
.flex-3
.flex-3
.flex-3
.flex-4
.flex-4
.flex-4
Grid with Panels
Forms
The .flex-grid also works well for forms, but it's important to be mindful of label and description lengths, to ensure they will fit the space provided at all screen sizes. More information is available on the forms documentation page.
Custom Forms
Basic Form Styles and Layout
Basic Forms (no class needed). Standardized around single column with label on top. flexbox system for .form-item divs being side-by side on larger screens. form.compact option will use smaller labels and description text. However, field inputs will remain at 16px at phone size, to ensure that they do not zoom on iPhones. By default, form fields and their associate labels and descriptions will fill all available width. form.no-constrain option lifts this limit limits these elements to 600px maximum width, which may be desirable in some cases where fields being wider than this will begin to lose their "field" appearance to the visitor's eyes.
Fieldset classes: .semantic (affects visual of fieldset and any legend within). Form-item and form-actions, class option: .form-item.tint, .description, .option-label for checkboxes and radios (put it after the checkbox and before the radio (but that doesn't seem right?), label + input + div.description pattern, .use-size-attr option
Flexbox system (include div.flex-grid as container for form-items and form-actions). By default, it won't change anything unless the form-items have classes added for a 12-column grid (.flex-1, flex-2, flex-3, etc up to .flex-12 (which is the default 100%)). Since it's not feasible to predict the ideal way to break the grid down in stages, the grid will simply drop to single column at subtablet size. Note: If using a grid layout, especially one with small units, there won't be space for long labels or description text for each field. Fields should generally only be displayed side-by-side if they have a strong thematic link (such as segments of a phone number) so that a single description can apply to the set. It's also probably best not to use a unit below 3.
Forms use the standard flex-grid system except that the switch to single column happens sooner (
If you want to provide a thematic break between fields or groups of fields, you can use an HR tag between .form-item divs (or .form-actions). This will also work inside of a flex-grid.
Fieldsets
The <fieldset> tag can be used to group fields which are thematically related. By default, the relationship is also represented visually, as seen throughout this page. Fieldsets must include a <legend> tag, which acts as a caption to describe the fields' relationship. More details on fieldset legends can be found below.
Default
Semantic (.semantic)
Fieldset Legends
Legends act as captions for a fieldset, helping to describe the thematic grouping of fields. In general, only one <legend> tag should appear in a <fieldset>. Multiple legends can be rendered. However, only the first will be treated as the primary caption.
Visually Hidden
While legends are optional in HTML5, they are required for WCAG 2.0 compliance. If a legend is not needed visually, use the .sr-only class to make it exclusive to screen readers. Combining this with a .semantic fieldset will allow you to use fieldsets with no visual representation, which is appropriate in many cases.
Nested Fieldsets
Nested fieldsets are supported but should be avoided if possible for easier accessibility. It may be a valid approach in some cases, however, such as organizing exceptionally complex forms.
Tips for Nerds
Form Inputs
Inputs, Textareas, and Selects (along with their labels and description boxes) will generally fill the width of their container by default, but with a maximum width of 600px. This 600px limit can be bypassed by including a .no-constrain class on the <form> tag. Use the .native-size class on an individual input (or a whole <form>) to override fluid sizing entirely and honor HTML-defined size attributes. This should be used with caution, since attributes like size and cols can override max-width constraints.
Basic Text
Specialty Text
By default, specialty text fields mimic the look and behavior of basic text fields. However, the optional .icon class on an input will add a thematic background icon.
Functional Inputs
The functionality of these input types is browser/device-specific. In many cases, they have no special functionality at all (but may in the future). In general, when a browser does not support special functionality for these fields, it will behave as a standard text field. However, in some cases, a field may not be supported at all (e.g., at the time of this writing, iOS has trouble with the Week input). To minimize compatibility issues, functional inputs are styled a bit more lightly than other text inputs. They will be roughly the same size, but will allow more device-specific design to come through. These esoteric fields should be used with care (and testing!).
Checkboxes
Notes about browser considerations and use of .option-label/.description/.form-item, checkboxes are toggled on and off independently, multiple checkboxes grouped in a set can be selected, radio buttons are grouped into a set in which only one can be selected at a time
Radio Buttons
Notes about browser considerations and use of .option-label/.description/.form-item, checkboxes are toggled on and off independently, multiple checkboxes grouped in a set can be selected, radio buttons are grouped into a set in which only one can be selected at a time
Select Lists
...
Flexbox Grid
Example Forms
Secondary Sidebar Content
Aliquam et nibh nec magna pellentesque rutrum vel a quam. Nullam tempor nibh ac augue tristique pulvinar. Sed ornare pellentesque euismod.
Receded Photo
Figure in a Sidebar
