Ethnus brand guidelines
This page sets how Ethnus looks and writes on every screen, email, document and web page. When an older guide, template or file disagrees with this page, this page is right and the other file is out of date.
Which look to use
Ethnus has three looks. They share the logo, the type family and the words. They differ in colour and layout because each one suits its medium.
| You are making | Look | Accent | Section |
|---|---|---|---|
| A screen in any app, web app, phone app or internal tool | Screen | #5350ff | Screens |
| Any email: system mail, alerts, codes, letters, newsletters | Screen colours, email layout | #5350ff | |
| A deck, report, proposal, letter, agreement or any PDF | #7c82e0 | ||
| A page on the company website | Website | #5350ff | Website |
| A public page for a partner's program | Partner colours, Ethnus rules | The partner's | Partner pages |
Every look follows the same principles:
- One accent colour. Everything else is white, neutral greys and ink.
- Flat surfaces with 1 px lines. No gradients, glow, glass effects or decorative shadows.
- Small corners, applied by role. Nothing on a screen is rounder than 8 px, except chips and badges.
- Facts and actions only. No narration, editorial asides or explanatory paragraphs.
- The look comes from the Ethnus brand itself. Do not copy another product's look.
For tools and agents: tokens.css holds every screen and print token as CSS custom properties. This page holds the rules for using them.
Logo
The Ethnus logo has three parts: the ring with the wordmark ETHNUS inside it, the line Explore | Expand | Enrich under it, and the ™ mark. The ring and the line are one piece and always appear together. Only the ™ may be left out.
Files





Placing the logo
- Colour logo on white and light surfaces. White logo on brand blue, periwinkle and dark surfaces. Never put the colour logo on a dark or coloured surface.
- Keep clear space of at least half the logo's height on every side.
- Set both width and height in the markup. The files have different shapes: the 480 px colour file is square, the 250 px white file is 25:18, the HD files are about 4:5. A logo with width left on auto gets squashed in some phone browsers.
- Alt text is always "Ethnus".
- Do not crop, recolour, rotate, stretch, outline, add a shadow to, or animate the logo. Do not separate the line from the ring.
| Place | Logo height |
|---|---|
| App top bar or side panel brand row | 36 px |
| A message page (no access, not found) | 72 px |
| Sign-in screen | 110 px |
| Email header bar (white logo) | 46 px wide |
| Print: content and divider slides at 1920 × 1080 | 91 px |
| Print: title and closing slides at 1920 × 1080 (white) | 250 px |
| Print: A4 running header | 20 mm |
| Print: A4 cover (white) | 62 mm |
Logo colours
The ring runs through the full spectrum. The wordmark is violet #3e2584 and the line is warm grey #877b77. These colours belong to the logo artwork only. Do not use them, or the ring's spectrum, as interface or document colours.
Browser tab icon and app icons
- Browser tab icon: the logo without the ™, in one colour. Black when the device is in light mode, white in dark mode, in one SVG that switches on
prefers-color-scheme. A grey.icocovers browsers that take no SVG icon. Link both: favicon.svg, favicon.ico. - Phone app icon: the whole colour logo on a white square. Not a letter E, and not on brand blue.
- Phone dark and tinted icons: the white logo on a clear background for iOS dark mode, the same in greyscale for iOS tinted mode, and a monochrome version for Android themed icons.
- Home-screen icon for a web app: the same as the phone app icon, plus a maskable version with the logo inside Android's round safe zone.
- Generate icons from the HD source files with a script. Do not edit them by hand.
Colour
Brand blue #5350ff is the one accent on screens, in email and on the website. Print uses periwinkle #7c82e0 instead (see Print). Never put the two on one page.
Screen and email palette
| Token | Light | Dark | Use |
|---|---|---|---|
--brand | #5350ff | #7b78ff | The one filled button per screen, links, focus ring, the current step, the unread alerts count |
--brand-hover | #4542e6 | #928fff | Hover and pressed state of brand fills |
--brand-contrast | #ffffff | #0e0e16 | Text and icons on a brand fill |
--page | #f3f3f6 | #0e0e16 | Page behind cards. Neutral, not lavender |
--surface | #ffffff | #14141f | Cards, panels, top bar, side panel, modals |
--line | #e1e1e8 | #2c2b45 | Every 1 px border and divider |
--ctl-line | #8a8a99 | #77769a | Borders of inputs and outlined buttons |
--ink | #14141b | #f4f4fb | All text and headings |
--muted | #5a5a72 | #a9a8c7 | Secondary text, field labels, captions |
--faint | #8a8a99 | #7d7c99 | Idle icons and disabled marks. Never text |
--sel | #e6e5ff | #26255a | Behind the selected item only |
--sel-ink | #4340e0 | #b1afff | Text on --sel |
--hover | #f6f6f9 | #1d1d30 | Row and item hover |
--badge | #e8e8ee | #2c2b45 | Count badges, with an ink number |
--test | #e8650a | #e8650a | Marks a test or staging copy (top bar strip, email bar). Nothing else uses orange |
- Most of every screen is white and
--page. Brand blue marks the one main action and where the person is. - Lavender
--selappears only behind the selected item. It is not a page, card or section colour. - Never hard-code a hex value on a screen. Use the tokens.
- Do not add a second accent colour, a gradient, a coloured top bar or a black top bar.
Status
Show a state as an 8 px dot and the word, in body type. Never colour alone, never a coloured pill.
| State | Dot and text, light | Tint behind a message, light | Dark |
|---|---|---|---|
| Done, good | --ok #188038 | --ok-bg #eff7f1 | #5bb974 on #16291e |
| Needs attention | --warn #b45309 | --warn-bg #fbf3ea | #e3a35c on #2d2116 |
| Failed, refused | --err #c5221f | --err-bg #fcefee | #f28b82 on #2f1a1c |
| Off, not started | --off #8a8a99 | none | #8d8ca8 |
| Information | --info = brand | --hover | #7b78ff |
Blue is not a status colour beyond information. Do not add an information blue or use blue to code categories.
Charts
Assign series in this order and never skip one. A chart with one series uses brand blue only. A meaning (done, late, failed, no data) takes its status colour, not a series colour. Gridlines and axes use --line, axis labels --muted. Read values in ink, never in the series colour.
| Order | Light | Dark |
|---|---|---|
| 1 | #5350ff | #7b78ff |
| 2 | #eb6834 | #d95926 |
| 3 | #1baf7a | #199e70 |
| 4 | #eda100 | #c98500 |
| 5 | #e87ba4 | #d55181 |
| 6 | #008300 | #008300 |
| 7 | #2a78d6 | #3987e5 |
| 8 | #e34948 | #e66767 |
Series 1 to 6 pass the contrast check against a card in both modes. Series 7 and 8 are spares: check them before use.
Contrast
Ratios use the WCAG 2.1 formula. Text needs 4.5:1. Text at 24 px, or 18.5 px bold, needs 3:1. Icons, input borders and focus rings need 3:1.
| Pair | Ratio | Result |
|---|---|---|
| Ink on white | 18.3:1 | Pass |
| Ink on page | 16.6:1 | Pass |
| Muted on white | 6.7:1 | Pass |
| White on brand (filled button) | 5.3:1 | Pass |
| Brand on white (link) | 5.3:1 | Pass |
Selected text #4340e0 on #e6e5ff | 5.6:1 | Pass |
Brand #5350ff on #e6e5ff | 4.3:1 | Fails as text. Use --sel-ink |
| Status ok, warn, err on their tints | 4.6 to 5.2:1 | Pass |
| Ink on count badge | 15.0:1 | Pass |
| Dark: ink on surface | 16.7:1 | Pass |
Dark: brand #7b78ff on surface | 5.2:1 | Pass, links allowed |
Faint #8a8a99 on white | 3.4:1 | Icons and borders only, never text |
| White on test orange | 3.3:1 | Large bold text only |
Type
Roboto is the Ethnus typeface for screens, email and print. The website is the one exception (see Website).
Screens
- Roboto 400, 500 and 700, self-hosted inside the build. Never load fonts from a CDN or from Google Fonts at run time.
- Roboto Mono only for record codes, IDs and reference numbers. Numbers and money use Roboto with tabular figures.
- Indian scripts use self-hosted Noto Sans for each script as the fallback.
- Six sizes, nothing smaller than 12 px. Sentence case everywhere. No uppercase labels and no letter-spaced micro-labels.
| Use | Size | Weight |
|---|---|---|
| Page title (h1) | 24 px | 600 |
| Section heading (h2) | 18 px | 600 |
| Sub-heading (h3), card title | 16 px | 500 |
| Body, table cells, inputs, menu items | 14 px, line height 1.5 | 400 |
| Secondary text, buttons, messages | 13 px | 400, buttons 500 |
| Field labels, table headers, captions, chips, footer | 12 px | 500 for labels and headers, else 400 |
Do not use weights 300 or 900 on screens. One weight step is enough for hierarchy.
Font stack Roboto, 'Helvetica Neue', Helvetica, Arial, sans-serif. Many mail apps ignore web fonts, so design for Arial and treat Roboto as a bonus.
Roboto 400 and 700, with Light 300 only for big stat values. Roboto Mono for the footer tag, codes and fee figures. Sizes are under Print.
Icons
Every Ethnus surface uses one icon set: Tabler Icons 3.49.0 (MIT licence), outline style, 2 px stroke on a 24 × 24 grid. This covers apps, phone apps, internal tools, email, the website, decks, reports and every PDF.
| Surface | Package | How it ships |
|---|---|---|
| Web apps built with Vite | @tabler/icons-sprite or @tabler/icons | Sprite copied into the build, referenced by a relative path |
| React web apps | @tabler/icons-react | Tree-shaken into the bundle |
| React Native phone apps | @tabler/icons-react-native | Bundled into the app binary |
| Server-rendered pages | @tabler/icons | Inline SVG at render time |
@tabler/icons | Avoid icons. Where one is needed, a PNG rendered from the Tabler SVG, with alt text. Many mail apps strip inline SVG | |
| Decks, reports, PDFs | @tabler/icons | Inline SVG in the print HTML, embedded in the file |
| Website | @tabler/icons | SVG files in the site's own media library |
- Icons ship inside each build and load from our own origin. Never from a CDN, never as an icon font, never by ligature name.
- Outline by default. The filled twin only shows an on or selected state, and the state also shows in colour or words.
- Grey (
--muted) by default. Ink or brand blue only when the item is active. A delete or remove icon turns red on hover, never blue. In print, icons are periwinkle. - Scale the whole icon. Never redraw or restroke one. Sizes: 20 px in navigation, 18 px in buttons and messages, 16 px inline with small text, 40 px on an empty page.
- One icon per meaning across every surface.
- A missing icon shows nothing: not a default glyph, an empty box or a word. The build fails on an icon name that is not in the set.
- A decorative icon is hidden from screen readers. An icon-only button carries a label for screen readers.
- No emoji anywhere: screens, email, print or the website.
- Pin the version and move every surface to a new version together.
Screens
These rules apply to every Ethnus app, web app, phone app and internal tool. They are dense, calm, back-office screens: a list, then a record, then one action.
Shell
| Part | Rule |
|---|---|
| Top bar | 56 px, white (--surface) with a 1 px line under it. Colour logo (white in dark mode) and the app name on the left. Alerts, help and the account on the right, all one height. Never a brand blue or black bar |
| Side panel | 240 px, white, 1 px line on its right. One item per page: icon and label, 36 to 40 px tall, 6 px corners. Selected item on --sel with --sel-ink text. Folds to icons below 1,200 px |
| Content | Fluid up to 1,280 px, centred, 24 px padding. Forms cap themselves at 720 px inside it. One content width for every page |
| Footer (internal tools) | 28 px, white, 1 px line on top, 12 px --muted. Left: © year Ethnus Consultancy Services Pvt. Ltd. Right: the app name and "internal tool, authorised use only" |
| Phones, below 760 px | The side panel becomes a menu. Targets are at least 44 px. Nothing scrolls sideways at 390 px wide |
| Dark mode | Every app has it. It follows the device setting, a switch in the shell overrides it, and the choice is remembered on that device. Dark tokens are brand-tinted, not plain grey. Filled buttons carry dark ink text |
Spacing, corners and depth
| Token | Value | Use |
|---|---|---|
| Spacing steps | 4, 6, 8, 10, 12, 16, 20, 24 px | 12 px is the default gap. 16 px inside cards. 24 px around the page |
--radius-ctl | 6 px | Buttons, inputs, menu items, side panel items |
--radius | 8 px | Cards, tables, modals, messages, menus, toasts. The largest corner on a screen |
--radius-pill | fully round | Chips, count badges, avatars, status dots. Never buttons |
| Depth | flat | Cards and tables carry a 1 px --line, no shadow |
--shadow-pop | 0 12px 32px -12px | Floating layers only: menus, modals, toasts, drawers |
Panels sit straight on the page. One panel per thing: never a card inside a card, a tinted box inside a card, or a bordered group inside a step.
Buttons
| Kind | Look | Rule |
|---|---|---|
| Primary | Brand fill, white text, 36 px, 13 px weight 500, 6 px corners, no shadow | One per screen: the main action |
| Secondary | Surface fill, ink text, 1 px --ctl-line border | Every other action |
| Text | No fill, no border, brand text | Low-weight actions such as Cancel in a form footer |
| Icon | 32 px square, grey icon, 6 px corners, hover tint | Always with a screen-reader label |
| Destructive | Outlined in red, red text | Never filled |
| Decision trio | Approve filled green, Turn down filled red, Hold filled amber | Once per screen, in a footer or a detail pane. The only exception to one filled button |
Button labels name the action in sentence case: "Download report", "Send code". Focus shows a 2 px brand outline with a 2 px offset.
Forms
- One column, up to 720 px. Labels above the field in 12 px weight 500
--muted. Floating labels only on the sign-in card. - Inputs 36 px, 1 px
--ctl-lineborder, 6 px corners, 14 px text. Focus turns the border brand blue with a 1 px brand ring. - A red asterisk marks a required field. Nothing else uses it.
- Errors show twice: a summary bar on top that links to each field, and a message under the field.
- A sticky footer holds Cancel as a text button on the left and the one primary button on the right.
- Use a constrained control wherever one fits: dropdowns for lists, number inputs with limits, date pickers, dependent lists. Free text only for truly open fields such as a name or a note.
- A money or count box echoes the value in Indian grouping under it from 1,000 up: "1,50,000 · 1.5 lakh".
- A multi-pick list starts with "Select all".
- Names and IDs are generated by the system and shown read-only. People do not type them.
- A form with three or more groups becomes a step rail, one group per step.
Lists and tables
- A title row with the page's one filled button.
- A filter bar above the table: Search first, then up to four filters with labels above, the rest behind "More filters". Applied filters show as removable chips with a "Clear" link. A left filter rail only when a list has more than six filters.
- The table sits in a card with its count. Headers are 12 px weight 500, sentence case. Numbers right-aligned in tabular figures.
- Row height: 36 px in dense, all-day staff tools. 44 px in light tools used now and then.
- A row that opens something shows a pointer and the hover tint.
- Row actions: the main actions as small outlined buttons side by side, the rest behind a vertical three-dot button at the row end. How many buttons show depends on the space. No middle dots between buttons.
- Opening a row: a row with its own page opens the page. A row with a few hidden facts expands in place under itself. A drawer is allowed only for dense read-only information on wide screens, and it is not the first choice.
- A record page has its title, its code in Roboto Mono, its status, up to five key facts, then one row of tabs with counts.
- Every list has loading, empty and error states. An empty state says what is empty and what to do: "No bookings yet".
Navigation
- Step rail for work done in order: numbered circles joined by a line, each with a Done, Now or To do label, the step name and one line of description. Every step can be clicked.
- Underline tabs for different views of one record, in no order.
- Choosing the wrong one is an error. A walk-through with a Next button is a rail, not tabs.
- No title inside a step or a tab. The rail or tab already names it.
- A breadcrumb on every page. The page title, the menu label and the breadcrumb use the same words.
- The address holds the page's state: tab, opened row, filters, sort and page number. Reload restores it and Back goes one step. Clean paths without
.html. Search words and personal details never go in the address.
Status, counts and dashboards
- Status is an 8 px dot and the word.
- Count badges are grey
--badgewith an ink number in 12 px, fully round, and hidden at zero. The unread alerts count is the only blue badge. - A dashboard has one counter strip of at most five numbers. Where a number comes from sits behind an info icon, not in a line under it.
Messages, toasts and modals
- Messages: 8 px corners, a status tint, an 18 px icon, 13 px text.
- Toasts: bottom centre, inverted (ink background), for confirmations that need no action.
- A result the person must act on opens a modal with the next step as buttons, not a toast.
- Create, edit and destructive actions open modals.
- A modal closes only through its own buttons. A click on the backdrop or the Esc key does not close it. The page behind stops scrolling and sits under a translucent backdrop.
- A destructive modal states what will happen: "Every learner moves to the new batch. This cannot be undone."
Sign-in
- Heading "Welcome to" and the app name, then "by Ethnus".
- Buttons by step: Sign in, Verify, Set password, Reset password, Email me a code. Other links: Forgot password?, Back to sign in.
- A wrong password and an account that needs a reset show the same error, so the screen never reveals which usernames exist.
- Code fields open the number pad and accept exactly the code's length. Every field carries the right autocomplete hint.
Accessibility
- Contrast as in Colour, in both modes.
- A visible focus ring on every control. A label on every field.
- Never colour alone for a state.
- Check every screen in light and dark mode and at 390 px wide.
Every Ethnus email uses the screen colours: system mail, alerts, sign-in codes, letters and newsletters alike.
| Part | Rule |
|---|---|
| Frame | A white card up to 600 px wide on a #f3f3f6 ground. 1 px #e1e1e8 border. No shadows, which most mail apps drop |
| Header | A brand blue #5350ff bar, 14 px by 22 px padding, with the white logo 46 px wide and alt text "Ethnus" |
| Body | 15 px, line height 1.5, ink #14141b. Headings 19 px and 15 px, weight 700, ink |
| Button | Brand fill, white text 15 px weight 700, 13 px by 24 px padding, 6 px corners. One per email |
| Key facts | Label in #5a5a72, value in ink, a 1 px #e1e1e8 line between rows |
| Status | A coloured dot (●) and the word, with the status colours from Colour |
| Footer | #f3f3f6 band, 12.5 px #5a5a72, the legal name Ethnus Consultancy Services Private Limited |
| Test copies | An orange #e8650a bar and a TESTING strip under it |
| Newsletters | Same colours and type. The body may be longer and carry images, each with alt text |
- Inline every style. Do not rely on a
<style>block or web fonts. - Design for phones on a poor connection first. Keep images small and give each one a width.
- Avoid icons. See Icons when one is needed.
- Words in email may be warm: please, thank you and greetings are fine here. Sign off "Regards," then "Team Ethnus".
Decks (16:9) and A4 documents (reports, proposals, program overviews, letters, agreements, policies) use the print look: white pages, one soft periwinkle accent, near-black type, thin hairlines and generous space. No gradients, glow, emoji or dark slides. The values were measured from approved Ethnus reference files and are fixed.
Print palette
| Token | Hex | Use |
|---|---|---|
--primary | #7c82e0 | Ribbon, cover and divider backgrounds, headline emphasis, table headers, stat values, icons, A4 headings |
--primary-dark | #5f65c9 | Secondary emphasis, inline links, small periwinkle text |
--link | #6c6ff5 | Table of contents entries |
--band | #f0f1fb | Section bands, tinted highlight slide |
--accent-fill | #eff0fb | Accent panels, step boxes |
--stat-fill | #f6f8fd | Stat cards |
--wash | #f7f8fe | Zebra rows, feature cards, callouts |
--rule | #e4e6f8 | Every hairline and card border, 1 px |
--rule-strong | #cdd0f2 | Heavier dividers, step box borders |
--chevron | #b9bce6 | Arrows between step boxes |
--ink | #1a1a1f | Headlines and body. Never pure black |
--ink-2 | #45455c | Lead text, stat labels |
--ink-muted | #5a5a72 | Slide body text, list items |
--ink-soft | #7a7a90 | Captions, mono details |
--ink-faint | #9a9aae | Kickers, footer centre line |
Text on periwinkle is always white. Do not use brand blue #5350ff or any generic blue in print.
Charts and diagrams use four pairs, in order: periwinkle #7c82e0 on #f0f1fb, amber #b45309 on #ffeeda, teal #0176a8 on #dcf3fc, rose #9a3e63 on #fdecea. A partner's chip uses the partner's own colour as text on a light tint of it.
Known contrast gaps, kept from the approved files: periwinkle on white is 3.4:1, so periwinkle text must be at least 14 pt bold (use --primary-dark below that). White on periwinkle is 3.4:1, fine for the large cover and divider text only. --ink-faint on white is 2.8:1, so kickers and the footer centre line are decorative, and nothing important may live only there.
Frame
- Ribbon: a periwinkle bar from the left page edge (x = 0) with a 45° chamfer cut from its bottom-right corner. At 1920 × 1080: 723 px bar, 14 px chamfer, 14 px tall, top edge 61 px from the top. On A4: 127.3 mm bar, 2.5 mm chamfer, 2.5 mm tall (61.5 mm for letters and agreements). One ribbon on every content page. Never on title, divider or closing slides, and never drawn as an arrow.
- Logo: top right. At 1920 × 1080: colour logo 91 px tall, 36 px from the top, 72 px from the right on content slides. White logo at the same spot on dividers, and 250 px tall, 91 px from the top, 125 px from the right on title and closing slides. On A4: colour logo 20 mm tall, 12.7 mm from the right edge, centred on the ribbon. Agreements use the black logo at 16 mm.
- Footer: three parts on one baseline. Left,
<Codemithra />in Roboto Mono, ink. Centre, "© Ethnus | www.ethnus.com | www.codemithra.com" in--ink-faint. Right, "Page N" in ink. 13 px on slides, 6.5 pt on A4. Pages are numbered from the first content page. Agreements and policies use "© Ethnus | www.ethnus.com" and the page number only. - Margins: slides have 125 px side padding at 1920 px, and everything under the headline is indented a further 68 px. A4 has 22 mm side padding, a 32 mm top margin for the running header and a 14 mm bottom margin.
- Left-align everything. Only text inside a diagram shape is centred.
Deck type at 1920 × 1080
| Element | Size | Weight | Colour |
|---|---|---|---|
| Kicker | 20 px, uppercase, 0.14em tracking | 700 | #9a9aae |
| Headline | 54 px, line height 1.1 | 700 | #1a1a1f, one short phrase in #7c82e0 |
| Lead paragraph | 28 px | 400 | #45455c |
| Subhead | 29 px | 700 | #1a1a1f |
| Body and lists | 24 px, line height 1.5 | 400 | #5a5a72 |
| Table text | 21 px | 400 | #1a1a1f |
| Stat value | 88 px | 300 | #7c82e0 |
| Title slide title | 116 px, Title Case | 700 | white |
| Divider heading | 80 px | 700 | white |
Slide types: title, section divider, standard content, two columns with an accent panel, feature cards (three or four), stat cards (two to four), numbered step chain (three to five steps), data table, label and value rows, chart or diagram, screenshot, tinted highlight (once, near the end) and closing ("Thank you" and at most the deck's title). One message per slide, stated in the headline. No agenda or "Questions?" slides unless asked.
A4 type
| Element | Size | Weight | Colour |
|---|---|---|---|
| h1 | 18 pt | 700 | #7c82e0 |
| h2 | 14.5 pt | 700 | #7c82e0 |
| h3, card title | 11 pt | 700 | #5f65c9 |
| Body | 9 pt, line height 1.5 | 400 | #1a1a1f |
| Table | 8 pt | 400 | #1a1a1f |
| Caption | 7 pt | 400 | #9a9aae |
| Footer | 6.5 pt | 400 | ink and #9a9aae |
On A4, headings are periwinkle. On slides, headlines are near-black. That difference is deliberate.
A4 cover: full-bleed #7c82e0, white text, centred. White logo 62 mm tall. Title 34 pt bold in Title Case, a short white rule under it, an optional italic subtitle, then "Submitted to" and "Prepared by", and the date as "15 November 2026". The cover is always a page of its own.
Components: table headers in a solid periwinkle fill with white bold text, zebra rows in #f7f8fe. Accent panels in #eff0fb with a periwinkle left rule. Status badges are ink text on a tinted fill with 4 to 6 px corners. No corner larger than about 8 px. A table of contents in #6c6ff5 with dotted leaders, every entry a link.
Website
The company website shares the brand blue, the logo, the icons and the words, and keeps its own type.
| Item | Value |
|---|---|
| Primary | #5350ff |
| Soft background | #efeeff |
| Text | #000000, body greys #606060 and #696969 |
| Social icons | Circles in #7976f9, white icon |
| Typeface | Poppins 400, 500, 600 for headings and body. Open Sans 400 as the second face. Never mixed with Roboto on one page |
| Type scale | 60, 50, 40, 35, 28, 24, 20, 18, 15, 14, 12 px. Hero headings 50 to 60 px, section headings 28 to 40 px, body 14 to 15 px. Headings weight 600 |
| Corners | 8 px on cards, buttons and messages. 26 px on image and slideshow blocks. Fully round chips |
| Spacing | Sections padded 30 by 40 px |
| Icons | Tabler outline SVG in brand blue, from the site's own media library |
Partner pages
A public page for a program that a partner runs may carry the partner's colours and typeface, because the program is theirs. Everything else stays Ethnus: the layout rules on this page, the words, the Ethnus colour logo on white, and corners of 8 px or less. The staff side of the same program (admin screens, reports, email) follows the Ethnus look in full.
Words
Write plain Indian English that a new reader understands on first read. These rules cover screens, email, documents and the website. They do not cover code, identifiers or commit messages.
No narration
- Screens and documents state facts and actions. No narration ("In this section we will"), no editorial asides, no tips, no comments, no explanatory paragraphs.
- A page gets at most a one-sentence lede. Rules and detail go behind Help.
- No courtesy prose on slides or screens: no "Thank you for partnering with us", no "Prepared by Ethnus on".
Spelling
British forms: colour, behaviour, organise, analyse, authorise, centre, licence (noun), enrol, enrolment, cancelled, travelled, catalogue, dialogue, fulfil, instalment, judgement, grey. One exception: always program, never programme, in both senses.
Names
| Write | Not |
|---|---|
| Ethnus | ETHNUS, ethnus (in prose) |
| Ethnus Consultancy Services Private Limited (legal pages, contracts, email footers) | Ethnus Consultancy Private Limited |
| Ethnus Consultancy Services Pvt. Ltd. (short footers) | |
| "by Ethnus" under an app's name | "powered by Ethnus" |
Terms
One word per concept. Do not vary it for style.
| Concept | Word | Not |
|---|---|---|
| A person learning | learner | student, trainee, participant |
| A person being assessed or placed | candidate | (assessment and placement only) |
| A person teaching | trainer | mentor, faculty, instructor |
| A group moving through together | batch on staff screens and documents, class in learner-facing copy | cohort |
| A partner college, university or school | institution | |
| A course of study | program | programme |
Punctuation and format
- No em dash or en dash anywhere. Use a full stop, comma, colon or pipe.
- No semicolons. Write two sentences.
- Sentence case for headings, tabs, buttons, menu items and email subjects. Title Case only for a deck or document title on its cover.
- No emoji. At most one exclamation mark per message, and only for good news.
- Oxford comma only when a list would otherwise be misread.
- Straight quotes on screens.
- Dates on screen: 13/08/2026. Dates in print and email body: 13 August 2026.
- Money: ₹ with Indian grouping, ₹1,20,000, ₹2.5 lakh, ₹1.2 crore.
- Phone: +91 98765 43210.
- Full names, no honorifics: "Dear Priya Sharma". Sign off "Regards," then "Team Ethnus".
- Expand an acronym on first use.
How screens speak
Screens, errors, toasts, alerts, chat, push messages and SMS are plain and direct. Email may be warm.
- No politeness padding on screens: no please, kindly, sorry, unfortunately or "we apologise".
- Lead with what the person can do. Pair a negative fact with the action, or say no action is needed.
- An error says what is wrong and what to do. No blame.
- Instructions start with the verb: "Select the checkbox to assign a trainer."
- Short sentences, one idea each: what happened, why when it helps, what to do next.
- No sentence starts with "Nothing". Say what is there, or what to do.
- No figures of speech or colour words for a state: say saved, runs, refused, checked, still applies.
- No "never" for a state. Say what the state is now and what happens next.
- Name actions in the person's words: "Email me a code", not "Request OTP".
- Avoid hype (seamless, robust, powerful, cutting-edge, world-class, unlock, empower, leverage), hedging ("It is important to note that") and forced lists of three.
| Do not write | Write |
|---|---|
| Please enter a valid ID. | Enter a valid ID. |
| This button does nothing without a file. | Attach a file to continue. |
| You entered the wrong number so it failed. | Invalid number. Enter a 6-digit active number. |
| Nothing here yet. | No bookings yet. |
| The alert lands on the bell. | The alert shows on the bell. |
| This job never ran. | This job has not run yet. It runs tonight. |
| Download Your Certificate | Download your certificate |
Release checklist
Check these before any screen, email or document goes out.
- Colours come from the tokens on this page. No new accent, no hard-coded hex on a screen.
- The right look for the medium: screen blue on screens and email, periwinkle in print.
- The colour logo on light surfaces, the white logo on dark, each with a set width and height and alt text "Ethnus". The logo is whole, with its line.
- Both browser tab icons are linked.
- Roboto (Poppins on the website) and Tabler Icons are the only fonts and icons, packaged in the build, none from a CDN.
- Nothing on a screen is rounder than 8 px except chips and badges. Cards are flat.
- One filled button per screen. Status is a dot and a word.
- Text passes 4.5:1 in light and dark mode. Selected labels use
--sel-ink. - On a 390 px wide phone the panel collapses and nothing scrolls sideways.
- Words: sentence case, Indian English, program, learner, no em dashes, no semicolons, no emoji, no narration.
- Internal tools carry the legal name and "authorised use only" in the footer.
Decisions and changes
Version 1.0 brings the earlier guides into this one page. These decisions settled the points where they disagreed.
| Date | Decision |
|---|---|
| 15/11/2026 | "learner" replaces "student" for a person learning, in every medium. |
| 15/11/2026 | Tabler Icons in print too. Material Symbols are retired everywhere. |
| 15/11/2026 | Ethnus has no tagline. Explore | Expand | Enrich lives only inside the logo. |
| 15/11/2026 | Every email, newsletters included, uses the screen colours. Periwinkle is for print only. |
| 15/11/2026 | Table rows are 36 px in dense staff tools and 44 px in light tools. |
| 15/11/2026 | A drawer only for dense read-only information on wide screens, and not the first choice. |
| 15/11/2026 | Row actions: main actions as buttons, the rest behind a vertical three-dot button, by available space. |
| 15/11/2026 | The logo's violet, grey and spectrum are artwork colours only, never interface colours. |
| 03/11/2026 | Row actions are proper outlined buttons with no middle dots between them. |
| 20/10/2026 | Browser tab icon: the logo without ™, in one colour, black in light mode and white in dark mode. |
| 19/10/2026 | Screen look locked: neutral page #f3f3f6, ink #14141b, white top bar, 240 px side panel, content up to 1,280 px, corners 6 and 8 px, no glow, Roboto with tabular figures, status as dot and word, brand-tinted dark mode, grey count badges. |
| 16/10/2026 | One icon set, Tabler, across every surface. No outside product as a design reference. |