Design frameworks

Color

Our goal is to create a color system that not only helps users subconsciously understand and map experiences, but also reinforce our customers' brand in a scalable way.

Introduction

Color is one of the first systems we as humans learn about, which quickly becomes one of the early ways we interpret the environment around us. Red implies importance, attention, or danger. Green portrays safety, stability, prosperity and nature. Purple conjures up feelings of royalty or luxury. Consciously and subconsciously this focus on color helps us make choices, set expectations, and understand where we are and what is possible in the world around us. Color is power! It can change the mood, encourage, warn, appeal, frighten, persuade, etc. 

As we get older and begin learning how to use technology, our relationship with color evolves. We become conditioned to read dark text before lighter text, and to click on blue text. On the surface the use of color in digital interfaces seems simplistic, and in brochure websites it may be. But as the use of color scales for the world of complex enterprise web applications and mobile apps, things become incredibly complex; especially so with white-label SaaS products that need to accommodate millions of users across hundreds of client implementations.

To add complexity, creating and maintaining a color system is a challenge for a design team of one, let alone dozens designing products all at once. With the pressures of stakeholders, client feedback, and user critique, it’s far too easy to apply colors on a one-off basis. But with each one-off color treatment the system becomes less scalable and more fragmented. 

At Alkami our goal is to create a color system that not only helps users subconsciously understand and map experiences, but also reinforce our customers' brand in a scalable way. To accomplish this, we’ve identified three levels of color: platform level, brand level and user level. The way we apply color at each level depends on the objective of that level.

All color on The Alkami Platform utilize the RGBA color model.

Platform Colors

At the platform level, the objective is to help the user move through feature journeys effortlessly. The use of color at this level aims to subtly form visual groupings of content that is consistent throughout the entire experience. If the UI element is not providing some sort of guidance or call to action, then a platform color is applied. Color at this level is exactly the same from one client to another.

Alpha Channels

To accomplish a slight transparency, while remaining consistent with other transparent elements on the platform, we have provided 5 design tokens to help with this. Progressing from fully transparent, to fully opaque, the tokens are meant to be paired with any other color token as the alpha channel value.

See this demo page to see how alpha channel tokens are used to create various levels of intensity with drop shadows.

Branded Colors

At the brand level, the objective is to help the user identify possible interactions and navigational elements. Using color ramps, we’ve created a wide variety of colors to use throughout the experience while also reinforcing the underlying brand colors.

Color Ramps

Since color is purely reliant on human perception and eyeballs, many variables impact the interpretation and usage of color. To ensure that colors are used in a consistent way on our platform, we’ve turned to math as a way to programmatically manage and generate branded color sets.

Using a client's branded colors, we’ll programmatically generate 2 sets of colors. The first set are 22 tones ranging from light to dark — 11 for guidance tones, and 11 for affordance tones (see the following paragraph for an explanation of guidance & affordance). The second set is used for interactions with the base branded color (static, hover, pressed) and an accessible tone to ensure any use of content on top of a branded color will pass color contrast accessibility guidelines.

Guidance vs Affordance

Designers give clues for possible actions through the visual treatments of UI elements. From the physical world, take the action of opening a door as an example. To open the door does the user push, pull, lift up, twist, or a combination of these actions? Designers can help users make this decision through the design of the door handle. Is the handle round? Twist to open! Is there a flat plate instead of a handle? Push to open! The design provides affordances and guidance on the operation of things. Color is one tool designers utilize to accomplish this in the digital world.

Using the two most prominent client brand colors, we’ll assign one color for use with moments of affordance (helping users understand what actions are possible), and the other color for use with guidance moments (helping users navigate through the system). By default, the primary brand color will be used as the guidance color, and the secondary brand color will be used as the affordance color — but this can be swapped or fine-tuned in Theme Builder.

Messaging Color

Throughout the experience, there are moments of cautionary messages, success messages, informational messages, error messages, etc. Each message has a default color used to represent the appropriate meaning, but each can be changed in Theme Builder. 

Account Colors

On The Alkami Platform we pair a color with the account nickname and account number as an additional way to quickly identify an account within the experience. By default, one of eight colors is assigned to an account, but the user can swap with another account color at any time. While users cannot choose a custom color, the FI can within Theme Builder. 

It is a good idea to provide a wide variety of colors since each user approaches the use of the account color differently. Some set deposit accounts to one color, investment accounts another, and loan/credit accounts another. Some users like to have a unique color for each account. Some users like to have their main checking one color, and all other checking accounts another color.  

On Colors

When there is a need to place elements on top of another element with a branded background color, using the “On” color will ensure color contrast accessibility is met.

User Colors

Users love a personalized experience, but with the Alkami solution powering the experience of millions of users, we have many different personas to design for. This creates a unique challenge; especially for vision impaired and color blind users. A possible solution we are currently exploring is to provide a "high-contrast mode" that increases the color contrast ratio throughout the UI.

In our early design provocations of this, some of the most moving explorations were those done in “dark mode”. So in addition to the high-contrast mode we know that many users prefer a dark mode especially at night, and we want to provide a solution for that in the future. 

Specs

Platform Colors

Color Name Design Token Default Value Notes
Alpha 0 ∆colorPlatformAlpha0 None Not themable. This isn’t necessarily an alpha, but if there needs to be a default for a color that could dynamically receive an alpha channel, then this one is a great way to accomplish that. In other words a color with this set as the alpha will remain fully opaque.
Alpha 100 ∆colorPlatformAlpha100 .04 Not themeable. This is the most extreme form of transparency on the platform. In other words a color with this set as the alpha will be near fully transparent.
Alpha 200 ∆colorPlatformAlpha200 .08 Not themable. This is not quite as transparent as Alpha 100, but more transparent than Alpha 300.
Alpha 300 ∆colorPlatformAlpha300 .16 Not themable. This is not quite as transparent as Alpha 200, but more transparent than Alpha 400.
Alpha 400 ∆colorPlatformAlpha500 .24 Not themable. This is not quite as transparent as Alpha 300, but more transparent than Alpha 500.
Alpha 500 ∆colorPlatformAlpha500 .40 Not themable. This is not quite as transparent as Alpha 400, but more transparent than Alpha 600. This transparency is used for the dark scrim.
Alpha 600 ∆colorPlatformAlpha600 .64 Not themable. This is not quite as transparent as Alpha 500, but more transparent than Alpha 700.
Alpha 700 ∆colorPlatformAlpha700 .80 Not themable. This is not quite as transparent as Alpha 600, but more transparent than Alpha 800. This transparency is used for the light scrim.
Alpha 800 ∆colorPlatformAlpha800 .88 Not themable. This is not quite as transparent as Alpha 700, but more transparent than Alpha 900.
Alpha 900 ∆colorPlatformAlpha900 .96 Not themable. Near fully opaque with just the slightest bit of transparency.
Platform White ∆colorPlatformWhite 255, 255, 255 Not themable. Used on surfaces, cards, and as type treatments when on darker surfaces.
Platform 25 ∆colorPlatform25 250, 250, 250 Not themable.
Platform 50 ∆colorPlatform50 242, 242, 242 Not themable.
Platform 100 ∆colorPlatform100 230, 230, 230 Not themable.
Platform 200 ∆colorPlatform200 204, 204, 204 Not themable.
Platform 300 ∆colorPlatform300 179, 179, 179 Not themable.
Platform 400 ∆colorPlatform400 153, 153, 153 Not themable.
Platform 500 ∆colorPlatform500 117, 117, 117 Not themable.
Platform 600 ∆colorPlatform600 102, 102, 102 Not themable.
Platform 700 ∆colorPlatform700 77, 77, 77 Not themable.
Platform 800 ∆colorPlatform800 51, 51, 51 Not themable.
Platform 900 ∆colorPlatform900 26, 26, 26 Not themable.

Branded Colors

Please note that guidance and affordance colors are defined by the FI and these are just base colors for the design system.

Branded Guidance Colors

Color Name Design Token Default Value Theme Builder Value Notes
Guidance Base ∆colorBrandedGuidance 109, 247, 196 179, 179, 179 Set in Theme Builder by FI. This is the true branded color without any mathematical adjustments.
Guidance 25 ∆colorBrandedGuidance25 248, 250, 249 250, 250, 250 Generated by Theme Builder.
Guidance 50 ∆colorBrandedGuidance50 239, 243, 242 242, 242, 242 Generated by Theme Builder
Guidance 100 ∆colorBrandedGuidance100 220, 235, 230 230, 230, 230 Generated by Theme Builder
Guidance 200 ∆colorBrandedGuidance200 177, 218, 203 204, 204, 204 Generated by Theme Builder
Guidance 300 ∆colorBrandedGuidance300 120, 210, 176 179, 179, 179 Generated by Theme Builder
Guidance 400 ∆colorBrandedGuidance400 62, 200, 149 153, 153, 153 Generated by Theme Builder
Guidance 500 ∆colorBrandedGuidancey500 26, 164, 113 117, 117, 117 Generated by Theme Builder
Guidance 600 ∆colorBrandedGuidance600 11, 149, 98 102, 102, 102 Generated by Theme Builder
Guidance 700 ∆colorBrandedGuidance700 0, 117, 74 77, 77, 77 Generated by Theme Builder
Guidance 800 ∆colorBrandedGuidance800 0, 77, 49 51, 51, 51 Generated by Theme Builder
Guidance 900 ∆colorBrandedGuidance900 0, 39, 25 26, 26, 26 Generated by Theme Builder
Guidance Accessible ∆colorBrandedGuidanceAccessible 0, 117, 74 102, 102, 102 Generated by Theme Builder. This is used anytime an element needs to be treated with the Base Guidance color, but also needs to be accessible on a Platform White or Gray 25 background.
Guidance On ∆colorBrandedGuidanceOnColor 0, 77, 49 51, 51, 51 Generated by Theme Builder. This is used anytime an element needs to live on top of another element treated with the Guidance Base color. This ensures color contrast accessibility.

Branded Affordance Colors

Color Name Design Token Default Value Theme Builder Value Notes
Affordance Base ∆colorBrandedAffordance 11, 158, 244 51, 51, 51 Set in Theme Builder by FI. This is the true branded color without any mathematical adjustments.
Affordance 25 ∆colorBrandedAffordance25 248, 249, 250 250, 250, 250 Generated by Theme Builder. Used as background surface color if FI sets background to affordance color instead of Platform White or an image.
Affordance 50 ∆colorBrandedAffordance50 241, 242, 243 242, 242, 242 Generated by Theme Builder
Affordance 100 ∆colorAffordance100 225, 231, 235 230, 230, 230 Generated by Theme Builder
Affordance 200 ∆colorAffordance200 190, 208, 219 204, 204, 204 Generated by Theme Builder
Affordance 300 ∆colorAffordance300 133, 193, 228 179, 179, 179 Generated by Theme Builder
Affordance 400 ∆colorAffordance400 58, 182, 255 153, 153, 153 Generated by Theme Builder
Affordance 500 ∆colorAffordance500 5, 152, 238 117, 117, 117 Generated by Theme Builder
Affordance 600 ∆colorAffordance600 0, 133, 212 102, 102, 102 Generated by Theme Builder
Affordance 700 ∆colorAffordance700 0, 101, 160 77, 77, 77 Generated by Theme Builder
Affordance 800 ∆colorAffordance800 0, 67, 106 51, 51, 51 Generated by Theme Builder
Affordance 900 ∆colorAffordance900 0, 34, 54 26, 26, 26 Generated by Theme Builder
Affordance Accessible ∆colorBrandedAffordanceAccessible 0, 101, 160 51, 51, 51 Generated by Theme Builder. This is used anytime an element needs to be treated with the Base Affordance color, but also needs to be accessible on a Platform White or Gray 25 background.
Affordance On ∆colorBrandedAffordanceOnColor 0, 34, 54 250, 250, 250 Generated by Theme Builder. This is used anytime an element needs to live on top of another element treated with the Affordance Base color. This ensures color contrast accessibility.

Branded States Colors

Please note that as the state of various elements throughout the experience progress through static, hover, pressed, etc. there is a different set of colors based on the background color of the static state. 

Affordance Hover/Pressed/Selected are the colors used when the static state is treated with the Affordance Base color. 

Branded Hover/Pressed/Selected/Focused are the colors used when the static state is treated with Platform White.

Color Name Design Token Default Value Notes
Affordance Hover ∆colorBrandedAffordanceHover Affordance 600 Used as an interactive hover state when the static state is treated with the Affordance Base color.
Affordance Hover On ∆colorBrandedAffordanceHoverOnColor Affordance 900 Used anytime an element needs to live on top of the Guidance Hover color. This ensures color contrast accessibility.
Affordance Pressed ∆colorBrandedAffordancePressed Affordance 600 Used as an interactive pressed/active state when the static state is treated with the Affordance Base color.
Affordance Pressed On ∆colorBrandedAffordancePressedOnColor Affordance 900 Used anytime an element needs to live on top of the Affordance Pressed color. This ensures color contrast accessibility.
Affordance Selected ∆colorBrandedAffordanceSelected Affordance 200 Used as an interactive selected state when the static state is treated with the Affordance Base color
Affordance Selected On ∆colorBrandedAffordanceSelectedOnColor Affordance 900 Used anytime an element needs to live on top of the Affordance Selected color. This ensures color contrast accessibility.
Branded Hover ∆colorBrandedHover Affordance 100 Used as an interactive hover state when the static state starts from white.
Branded Pressed ∆colorBrandedPressed Affordance 100 Used as an interactive pressed state when the static state starts from white.
Branded Selected ∆colorBrandedSelected Affordance 200 Used as an interactive selected state when the static state starts from white.
Branded Focused ∆colorBrandedFocused Affordance Used as an interactive focused state for text field components.
Guidance Hover ∆colorBrandedGuidanceHover Guidance 600 Used as an interactive hover state when the static state is treated with the Guidance Base color.
Guidance Hover On ∆colorBrandedGuidanceHoverOnColor Guidance 900 Used anytime an element needs to live on top of the Guidance Hover color. This ensures color contrast accessibility.
Guidance Pressed ∆colorBrandedGuidancePressed Guidance 700 Used as an interactive pressed/active state when the static state is treated with the Guidance Base color.
Guidance Pressed On ∆colorBrandedGuidancePressedOnColor Guidance 100 Used anytime an element needs to live on top of the Guidance Pressed color. This ensures color contrast accessibility.
Guidance Selected ∆colorBrandedGuidanceSelected Guidance 200 Used as an interactive selected state when the static state is treated with the Guidance Base color.
Guidance Selected On ∆colorBrandedGuidanceSelectedOnColor Guidance 900 Used anytime an element needs to live on top of the Guidance Selected color. This ensures color contrast accessibility.

Bulletin Messaging Colors

Color Name Design Token Default Value Notes
Bulletin ∆colorBrandedBulletin 51, 51, 51 Not themable.
Bulletin On ∆colorBrandedBulletinOnColor Platform White Not themable.

Info Messaging Colors

Color Name Design Token Default Value Notes
Info 25 ∆colorInfo25 250, 250, 250 Not themeable.
Info 50 ∆colorInfo50 236, 242, 249 Not themeable. 70% added saturation from base ramp value.
Info 100 ∆colorInfo100 214, 232, 245 Not themeable. 60% added saturation from base ramp value.
Info 200 ∆colorInfo200 173, 209, 240 Not themeable. 70% added saturation from base ramp value.
Info 300 ∆colorInfo300 135, 190, 238 Not themeable. 75% added saturation from base ramp value.
Info 400 ∆colorInfo400 79, 172, 255 Not themeable.
Info 500 ∆colorInfo500 36, 137, 227 Not themeable.
Info 600 ∆colorInfo600 21, 122, 212 Not themeable.
Info 700 ∆colorInfo700 0, 96, 182 Not themeable.
Info 800 ∆colorInfo800 0, 64, 121 Not themeable.
Info 900 ∆colorInfo900 0, 33, 62 Not themeable.

Success Messaging Colors

Color Name Design Token Default Value Notes
Success 25 ∆colorSuccess25 247, 252, 252 Not themeable. 50% added saturation from base ramp value.
Success 50 ∆colorSuccess50 236, 249, 240 Not themeable. 50% added saturation from base ramp value.
Success 100 ∆colorSuccess100 217, 242, 223 Not themeable. 50% added saturation from base ramp value.
Success 200 ∆colorSuccess200 180, 223, 192 Not themeable. 40% added saturation from base ramp value.
Success 300 ∆colorSuccess300 140, 203, 157 Not themeable.
Success 400 ∆colorSuccess400 93, 190, 119 Not themeable.
Success 500 ∆colorSuccess500 57, 154, 83 Not themeable.
Success 600 ∆colorSuccess600 42, 139, 68 Not themeable.
Success 700 ∆colorSuccess700 17, 114, 43 Not themeable.
Success 800 ∆colorSuccess800 0, 82, 22 Not themeable.
Success 900 ∆colorSuccess900 0, 42, 11 Not themeable.

Caution Messaging Colors

Color Name Design Token Default Value Notes
Caution 25 ∆colorCaution25 254, 254, 245 Not themable. 100% added saturation from base ramp value.
Caution 50 ∆colorCaution50 255, 249, 229 Not themable. 100% added saturation from base ramp value.
Caution 100 ∆colorCaution100 255, 240, 199 Not themable. 100% added saturation from base ramp value.
Caution 200 ∆colorCaution200 255, 217, 128 Not themable. 100% added saturation from base ramp value.
Caution 300 ∆colorCaution300 255, 194, 41 Not themable. 100% added saturation from base ramp value.
Caution 400 ∆colorCaution400 214, 150, 0 Not themable. 100% added saturation from base ramp value.
Caution 500 ∆colorCaution500 163, 115, 0 Not themable.
Caution 600 ∆colorCaution600 142, 101, 0 Not themable.
Caution 700 ∆colorCaution700 107, 76, 0 Not themable.
Caution 800 ∆colorCaution800 71, 50, 0 Not themable.
Caution 500 ∆colorCaution500 36, 26, 0 Not themable.

Error Messaging Colors

Color Name Design Token Default Value Notes
Error 25 ∆colorError25 252, 247, 247 Not themable. 50% added saturation from base ramp value.
Error 50 ∆colorError50 249, 236, 236 Not themable. 50% added saturation from base ramp value.
Error 100 ∆colorError100 248, 216, 216 Not themable. 70% added saturation from base ramp value.
Error 200 ∆colorError200 237, 182, 182 Not themable. 60% added saturation from base ramp value.
Error 300 ∆colorError300 237, 151, 151 Not themable. 70% added saturation from base ramp value.
Error 400 ∆colorError400 255, 109, 109 Not themable.
Error 500 ∆colorError500 246, 62, 62 Not themable.
Error 600 ∆colorError600 231, 47, 47 Not themable.
Error 700 ∆colorError700 206, 22, 22 Not themable.
Error 800 ∆colorError800 170, 0, 0 Not themable.
Error 900 ∆colorError900 87, 0, 0 Not themable.

Branded Account Colors

Color Name Design Token Default Value Notes
Account Color 1 ∆colorBrandedAccountColor0 46, 204, 113 Set in Theme Builder by FI
Account Color 1 On ∆colorBrandedAccountColorOnColor0 0, 0, 0 Generated in Theme Builder
Account Color 2 ∆colorBrandedAccountColor1 39, 124, 180 Set in Theme Builder by FI
Account Color 2 On ∆colorBrandedAccountColorOnColor1 255, 255, 255 Generated in Theme Builder
Account Color 3 ∆colorBrandedAccountColor2 212, 232, 34 Set in Theme Builder by FI
Account Color 3 On ∆colorBrandedAccountColorOnColor2 0, 0, 0 Generated in Theme Builder
Account Color 4 ∆colorBrandedAccountColor3 228, 37, 50 Set in Theme Builder by FI
Account Color 4 On ∆colorBrandedAccountColorOnColor3 255, 255, 255 Generated in Theme Builder
Account Color 5 ∆colorBrandedAccountColor4 44, 62, 80 Set in Theme Builder by FI
Account Color 5 On ∆colorBrandedAccountColorOnColor4 255, 255, 255 Generated in Theme Builder
Account Color 6 ∆colorBrandedAccountColor5 227, 141, 28 Set in Theme Builder by FI
Account Color 6 On ∆colorBrandedAccountColorOnColor5 0, 0, 0 Generated in Theme Builder
Account Color 7 ∆colorBrandedAccountColor6 142, 68, 173 Set in Theme Builder by FI
Account Color 7 On ∆colorBrandedAccountColorOnColor6 255, 255, 255 Generated in Theme Builder
Account Color 8 ∆colorBrandedAccountColor7 189, 195, 199 Set in Theme Builder by FI
Account Color 8 On ∆colorBrandedAccountColorOnColor7 0, 0, 0 Generated in Theme Builder