| version | alpha | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| name | ECOSLO-design-system | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| description | A calm, civic environmental management interface for ECOSLO tree adoption, volunteer coordination, reminders, tasks, and map workflows. The product uses a natural institutional palette, serif page titles, rounded off-white surfaces, and Mulish-based utility typography. The interface should feel local, trustworthy, organic, quiet, and operational rather than flashy or tech-heavy. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| fonts |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| colors |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| semanticColors |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| typography |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| spacing |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| radii |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| borders |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| shadows |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| layout |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| components |
|
ECOSLO is an environmental civic operations app for trees, volunteers, reminders, tasks, maps, and adoption workflows. The interface should look like a refined nonprofit field-management system: calm, grounded, local, accessible, and lightly organic.
The visual identity is built around a muted sage-green sidebar, off-white canvas, rounded cards, pill controls, serif page titles, and Mulish-based operational text. Avoid modern SaaS flashiness. The UI should feel like a trustworthy public-facing environmental tool with enough structure for admin workflows.
The reminders page uses a fixed green left sidebar, large Constantia page title, white header area, and a two-column content layout. The left column is an overview panel containing reminder cards. Active reminders use white cards with a pale green active badge. Inactive reminders use muted off-white cards with faded brown text and pink-red badges. The right column is a large editor panel with field labels in Constantia, pill-shaped inputs and selects, a beige start-date strip, token chips, a large white message textarea, toggle cards, and pill action buttons.
The map page uses a horizontal green top bar instead of the admin sidebar. The canvas is mostly off-white with floating white controls. Tree markers use the primary sage green and a white tree icon. The selected marker has a white circular ring and drop shadow. A right-side drawer uses a white background, large Constantia tree title, small status pills, stacked off-white information cards, and full-width pill buttons at the bottom.
The tasks page uses the admin sidebar and a large Constantia page title. Filters sit in a rounded off-white panel. Search is a full-width white pill input. Segmented controls use primary green for selected states and white/off-white for inactive states. Task cards are wide rounded rectangles, mostly muted off-white, with Constantia card titles and Mulish metadata. Completed cards use a darker muted background, reduced emphasis, and a pale green completed badge.
The volunteers page uses a wider desktop layout with the same admin sidebar. The page title is extra large and bold. The top filter panel combines search with role filter pills. The volunteer list is a bordered, rounded table. Table headers use bold Mulish, rows alternate between white and off-white, and badges use subdued semantic fills. Pagination is contained inside a muted footer row with rounded page controls.
The palette is highly constrained and should remain so. The main brand colors are muted greens, not bright greens. Off-whites and warm grays create the product’s calm organic foundation. Red and blue are reserved for semantic states only. Black and white are used sparingly for contrast, text, cards, and controls.
- Use Constantia for page titles, panel headings, field labels, and card titles.
- Use Mulish for navigation, buttons, tables, metadata, inputs, forms, and body copy.
- Use sage green as the primary brand color and selected state color.
- Use off-white surfaces instead of pure gray.
- Prefer rounded panels, cards, chips, and pill controls.
- Use borders and surface contrast more than shadows.
- Keep layouts spacious and calm, with strong alignment and generous gutters.
- Avoid decorative gradients, neon colors, glassmorphism, and heavy SaaS shadows.
Use #F2F0ED as the default page canvas. Use #FFFFFF for cards, input fields, selected high-emphasis cards, drawer surfaces, and table rows. Use #EAE7E0 and #DEDBD2 for muted panels, disabled/completed states, table striping, dividers, and form helper areas.
Use #7B8963 as the default primary green for buttons, selected filter pills, sidebar background, map pins, active nav states, and important active controls. Use #879471 for hover/lifted green states and #697751 for pressed, active, or high-emphasis altered states. Use #E1E4D0 and #C9CEAD for active badges, selected dropdown rows, soft chips, and positive state backgrounds.
Use #6A5F52 and #7D7469 for muted text, metadata, inactive labels, dividers, and earthy low-emphasis UI elements. Brown should support the warm natural tone but should not replace black for primary readability.
Use red only for inactive, destructive, delete, or issue states. Use blue only for private/info states. Never use red or blue as decorative accent colors.
Constantia is the brand and structure font. It gives the app its civic, editorial, environmental character. Use it for titles and important labels only.
Mulish is the operational interface font. Use it for everything users scan, click, search, filter, sort, or edit.
Page titles should be large, black, and visually dominant. Admin pages generally use 56px Constantia. The volunteer page can use a larger 64px title on wide desktop screens. Avoid making page titles light or small.
Section headings, detail drawer titles, card titles, and form field labels should use Constantia. Body copy, table text, search placeholders, metadata, buttons, nav labels, badges, pagination, dropdowns, and form inputs should use Mulish.
Some admin title states may use a thin blue underline highlight beneath part of the word, as seen on the Reminders page. Treat this as an occasional prototype artifact or optional active-title flourish. Do not use it globally unless a page mockup specifically includes it.
Use a fixed left sidebar on desktop.
- Width: 160px.
- Background:
#7B8963or#697751. - Logo at the top with generous spacing.
- White pill log-out button below the logo.
- Navigation items stacked vertically with large white outline icons.
- Active nav item sits in a translucent lighter green rounded square/tile.
- Nav labels use Mulish bold, centered under icons.
The main content area starts to the right of the sidebar. Use a white header band for the page title and top actions, separated from content by a subtle off-white border.
Use a full-width green top bar instead of the left sidebar for public map views.
- Top bar height: about 110px.
- Logo aligned left.
- Login button aligned right as a white pill.
- Map canvas fills below top bar.
- Right detail drawer overlays or docks to the map.
Use generous horizontal padding: 48px on desktop admin pages and 32px on narrower screens. Panels should not touch the viewport edge except for intentional app shell elements such as sidebars, top bars, or map canvases.
Major filter/editor/table containers use off-white panel backgrounds with subtle borders and 18px radius. Interior cards use either white for active/high-emphasis content or off-white-2/off-white-3 for inactive, completed, or lower-emphasis content.
The sidebar is a primary brand element and should remain visually consistent across admin screens.
- Background:
#7B8963or#697751. - Icon color: white or off-white.
- Label color: white or off-white.
- Active item background: rgba-like lighter green, visually close to
#879471. - Active item radius: 14px.
- Do not add borders between nav items.
- Keep icons large, simple, and outline-based.
Admin headers are white with a large Constantia page title aligned left. Primary actions such as “New Reminder” or “Add Volunteer” sit at the top right as green pill buttons.
Use a subtle bottom divider in #EAE7E0 or #DEDBD2.
Primary buttons are green pills with white Mulish bold text. Use them for actions like Create Reminder, Add Volunteer, Report an Issue, and selected filter states.
Secondary buttons are outlined or off-white pills with muted brown or black text. Use them for Cancel, Close, inactive segmented controls, and lower-priority actions.
Icon buttons should be circular or pill-based and use simple line icons. Delete actions should use red iconography without large red fills unless the action is destructive and confirmed.
Search inputs are white pills with a left search icon and muted placeholder text.
- Height: 46-56px depending on page density.
- Radius: pill.
- Border: subtle
#DEDBD2when on white; no visible border when inside an off-white panel. - Placeholder: Mulish, muted brown.
Selected filters use dark green background with white text. Inactive filters use white or off-white backgrounds with black text and subtle borders. Keep the radius pill-shaped.
Dropdown rows should use pale green selected states with a checkmark aligned right.
Active cards use white backgrounds and high-contrast text. Inactive or completed cards use muted off-white backgrounds and lower-contrast brown text.
Reminder and task cards should be large, rounded, and spacious. Titles use Constantia. Metadata uses Mulish with small icons.
Badges are rounded pills with soft backgrounds and semantic text.
- Active: pale green background, dark green text.
- Inactive: light red background, red text.
- Private/info: light blue background, blue text.
- Completed: light green background, dark green text.
- Role badges: off-white or pale green, depending on role emphasis.
Badges should not be saturated or loud.
Form panels should feel calm and editorial, not dense.
- Labels: Constantia, 22px.
- Inputs/selects: white pill fields.
- Use two-column layout on desktop.
- Use full-width stacked fields on mobile.
- Textareas are white rounded rectangles with Mulish text.
- Token chips are small off-white pills with monospace-like placeholder labels only if necessary; otherwise use Mulish.
Toggles use muted panel cards with text on the left and a green switch on the right. Active toggle tracks are dark green. Knobs are white. Keep toggle cards rounded and aligned with form grid columns.
Tables appear inside a rounded container with a border. Headers use a muted off-white background and bold Mulish. Rows alternate between white and off-white. Text should be Mulish bold or medium for scanability. Use badges inside cells for roles and assigned tree numbers.
Pagination sits in a muted footer row. Pagination controls are rounded small square buttons with subtle borders.
Map controls float above the map as white rounded panels with soft shadows.
- Zoom control: vertical white pill/rounded rectangle with plus and minus icons.
- Search/filter control: larger floating white rounded panel.
- Map pins: green teardrop markers with white tree icons.
- Selected pin: green marker with a white inner circular ring and stronger shadow.
The map detail drawer is a white right-side panel around 405px wide on desktop.
- Title: Constantia, 30px.
- Close icon: black, top right.
- Status pills below title.
- Information blocks are off-white rounded cards.
- Each block title uses Constantia uppercase or small title styling.
- Body text uses Mulish.
- Bottom action buttons are full-width pills.
Use a two-column layout inside the content area.
- Left overview panel: about one-third width.
- Right editor panel: about two-thirds width.
- Reminder list cards stack vertically with 24px gaps.
- Editor sections use dividers and form grids.
- Primary submit and cancel buttons sit side by side at the bottom.
Use a top filter panel followed by a task-list panel.
- Search spans full width.
- Status segmented control sits left.
- Assignee and survey dropdowns sit to the right.
- Task cards are full-width rounded rectangles.
- Completed tasks are visually muted and may show a completed badge aligned right.
Use a wide desktop data-management layout.
- Header title left, Add Volunteer button right.
- Filter panel below title with search and role pills.
- Table container below with rounded corners.
- Header row and pagination footer use muted backgrounds.
- Row height should be generous, around 72px.
Use an immersive map canvas.
- Public top bar instead of admin sidebar.
- Floating controls top left.
- Tree detail drawer right.
- Keep map background minimal and off-white when no map tiles are shown.
- Use green tree markers consistently.
Primary buttons should default to #7B8963, lighten to #879471 on hover, and use #697751 for pressed or high-emphasis altered states. Cards may subtly raise with a soft shadow only if clickable. Avoid dramatic scaling.
Inputs, selects, and buttons should show an accessible green or brown focus ring. Use a 2px outline offset by 2px. Do not rely only on color changes.
Disabled or inactive items use off-white-3 backgrounds, muted brown text, and reduced opacity. Do not use pure gray.
Selected filters, nav items, map markers, and dropdown rows should use green backgrounds or pale green fills depending on emphasis.
Use the full admin sidebar. Maintain generous page gutters and two-column layouts where shown in the mocks. Tables may use horizontal space fully.
Sidebar may remain if space allows, but reduce page gutters to 32px. Two-column form layouts may remain until content becomes cramped. Volunteer table may horizontally scroll inside its rounded container.
Collapse the sidebar into a bottom nav or hamburger drawer. Stack all form columns and page panels vertically. Use smaller page titles around 40px. Convert tables into card lists or horizontally scrollable tables. Map drawer should become a bottom sheet with rounded top corners.
Maintain readable contrast between black text and off-white/white backgrounds. Use semantic colors consistently and never communicate status by color alone; pair status color with text labels like Active, Private, Completed, or Inactive.
All interactive controls should have clear focus states. Touch targets should be at least 44px tall. Icons should include accessible labels when they are buttons.
- Use Constantia for large page titles and important headings.
- Use Mulish for operational UI text.
- Use
#7B8963sage green for primary actions, selected states, sidebars, and map markers; reserve#879471and#697751for altered states. - Use off-white backgrounds instead of cool gray.
- Use rounded cards, panels, chips, and pill buttons.
- Use soft semantic badges for status.
- Keep spacing generous and layouts calm.
- Use simple line icons that match the mockups.
- Keep tables structured and lightly bordered.
- Make selected map markers visibly distinct with a white ring.
- Do not introduce bright greens, neon colors, or saturated SaaS gradients.
- Do not use blue except for private/info states.
- Do not use red except for inactive/destructive/issue states.
- Do not use heavy drop shadows on standard cards.
- Do not replace Constantia page titles with sans-serif titles.
- Do not use sharp-cornered cards or rectangular buttons.
- Do not make the UI overly dense.
- Do not add borders between sidebar nav items.
- Do not use generic gray surfaces when warm off-whites are available.
- Do not use multiple competing accent colors on one screen.
When generating UI for this app, match the provided mockups closely. Use the exact color tokens from this file, Constantia for headings, and Mulish for body/interface text. Build admin pages with a fixed sage-green sidebar, large serif page titles, white/off-white content surfaces, rounded panels, pill controls, soft badges, and spacious card-based layouts. Build public map pages with a horizontal sage-green top bar, floating white map controls, green tree markers, and a right-side white detail drawer.
Prefer semantic tokens such as primary, panel-bg, card-bg, text-muted, success-bg, and danger-bg over raw hex values. Preserve the restrained environmental visual language. Every new screen should feel like it belongs to the Reminders, Tasks, Volunteers, and Map mockups.