Class: DefaultAvatarGenerator::Colors

Inherits:
Object
  • Object
show all
Defined in:
lib/default_avatar_generator/colors.rb

Overview

List of colors

Constant Summary collapse

COLORS =
{
  slate: {
    50 => '#f8fafc',
    100 => '#f1f5f9',
    200 => '#e2e8f0',
    300 => '#cbd5e1',
    400 => '#94a3b8',
    500 => '#64748b',
    600 => '#475569',
    700 => '#334155',
    800 => '#1e293b',
    900 => '#0f172a',
    950 => '#020617'
  },
  gray: {
    50 => '#f9fafb',
    100 => '#f3f4f6',
    200 => '#e5e7eb',
    300 => '#d1d5db',
    400 => '#9ca3af',
    500 => '#6b7280',
    600 => '#4b5563',
    700 => '#374151',
    800 => '#1f2937',
    900 => '#111827',
    950 => '#030712'
  },
  zinc: {
    50 => '#fafafa',
    100 => '#f4f4f5',
    200 => '#e4e4e7',
    300 => '#d4d4d8',
    400 => '#a1a1aa',
    500 => '#71717a',
    600 => '#52525b',
    700 => '#3f3f46',
    800 => '#27272a',
    900 => '#18181b',
    950 => '#09090b'
  },
  neutral: {
    50 => '#fafafa',
    100 => '#f5f5f5',
    200 => '#e5e5e5',
    300 => '#d4d4d4',
    400 => '#a3a3a3',
    500 => '#737373',
    600 => '#525252',
    700 => '#404040',
    800 => '#262626',
    900 => '#171717',
    950 => '#0a0a0a'
  },
  stone: {
    50 => '#fafaf9',
    100 => '#f5f5f4',
    200 => '#e7e5e4',
    300 => '#d6d3d1',
    400 => '#a8a29e',
    500 => '#78716c',
    600 => '#57534e',
    700 => '#44403c',
    800 => '#292524',
    900 => '#1c1917',
    950 => '#0c0a09'
  },
  red: {
    50 => '#fef2f2',
    100 => '#fee2e2',
    200 => '#fecaca',
    300 => '#fca5a5',
    400 => '#f87171',
    500 => '#ef4444',
    600 => '#dc2626',
    700 => '#b91c1c',
    800 => '#991b1b',
    900 => '#7f1d1d',
    950 => '#450a0a'
  },
  orange: {
    50 => '#fff7ed',
    100 => '#ffedd5',
    200 => '#fed7aa',
    300 => '#fdba74',
    400 => '#fb923c',
    500 => '#f97316',
    600 => '#ea580c',
    700 => '#c2410c',
    800 => '#9a3412',
    900 => '#7c2d12',
    950 => '#431407'
  },
  amber: {
    50 => '#fffbeb',
    100 => '#fef3c7',
    200 => '#fde68a',
    300 => '#fcd34d',
    400 => '#fbbf24',
    500 => '#f59e0b',
    600 => '#d97706',
    700 => '#b45309',
    800 => '#92400e',
    900 => '#78350f',
    950 => '#451a03'
  },
  yellow: {
    50 => '#fefce8',
    100 => '#fef9c3',
    200 => '#fef08a',
    300 => '#fde047',
    400 => '#facc15',
    500 => '#eab308',
    600 => '#ca8a04',
    700 => '#a16207',
    800 => '#854d0e',
    900 => '#713f12',
    950 => '#422006'
  },
  lime: {
    50 => '#f7fee7',
    100 => '#ecfccb',
    200 => '#d9f99d',
    300 => '#bef264',
    400 => '#a3e635',
    500 => '#84cc16',
    600 => '#65a30d',
    700 => '#4d7c0f',
    800 => '#3f6212',
    900 => '#365314',
    950 => '#1a2e05'
  },
  green: {
    50 => '#f0fdf4',
    100 => '#dcfce7',
    200 => '#bbf7d0',
    300 => '#86efac',
    400 => '#4ade80',
    500 => '#22c55e',
    600 => '#16a34a',
    700 => '#15803d',
    800 => '#166534',
    900 => '#14532d',
    950 => '#052e16'
  },
  emerald: {
    50 => '#ecfdf5',
    100 => '#d1fae5',
    200 => '#a7f3d0',
    300 => '#6ee7b7',
    400 => '#34d399',
    500 => '#10b981',
    600 => '#059669',
    700 => '#047857',
    800 => '#065f46',
    900 => '#064e3b',
    950 => '#022c22'
  },
  teal: {
    50 => '#f0fdfa',
    100 => '#ccfbf1',
    200 => '#99f6e4',
    300 => '#5eead4',
    400 => '#2dd4bf',
    500 => '#14b8a6',
    600 => '#0d9488',
    700 => '#0f766e',
    800 => '#115e59',
    900 => '#134e4a',
    950 => '#042f2e'
  },
  cyan: {
    50 => '#ecfeff',
    100 => '#cffafe',
    200 => '#a5f3fc',
    300 => '#67e8f9',
    400 => '#22d3ee',
    500 => '#06b6d4',
    600 => '#0891b2',
    700 => '#0e7490',
    800 => '#155e75',
    900 => '#164e63',
    950 => '#083344'
  },
  sky: {
    50 => '#f0f9ff',
    100 => '#e0f2fe',
    200 => '#bae6fd',
    300 => '#7dd3fc',
    400 => '#38bdf8',
    500 => '#0ea5e9',
    600 => '#0284c7',
    700 => '#0369a1',
    800 => '#075985',
    900 => '#0c4a6e',
    950 => '#082f49'
  },
  blue: {
    50 => '#eff6ff',
    100 => '#dbeafe',
    200 => '#bfdbfe',
    300 => '#93c5fd',
    400 => '#60a5fa',
    500 => '#3b82f6',
    600 => '#2563eb',
    700 => '#1d4ed8',
    800 => '#1e40af',
    900 => '#1e3a8a',
    950 => '#172554'
  },
  indigo: {
    50 => '#eef2ff',
    100 => '#e0e7ff',
    200 => '#c7d2fe',
    300 => '#a5b4fc',
    400 => '#818cf8',
    500 => '#6366f1',
    600 => '#4f46e5',
    700 => '#4338ca',
    800 => '#3730a3',
    900 => '#312e81',
    950 => '#1e1b4b'
  },
  violet: {
    50 => '#f5f3ff',
    100 => '#ede9fe',
    200 => '#ddd6fe',
    300 => '#c4b5fd',
    400 => '#a78bfa',
    500 => '#8b5cf6',
    600 => '#7c3aed',
    700 => '#6d28d9',
    800 => '#5b21b6',
    900 => '#4c1d95',
    950 => '#2e1065'
  },
  purple: {
    50 => '#faf5ff',
    100 => '#f3e8ff',
    200 => '#e9d5ff',
    300 => '#d8b4fe',
    400 => '#c084fc',
    500 => '#a855f7',
    600 => '#9333ea',
    700 => '#7e22ce',
    800 => '#6b21a8',
    900 => '#581c87',
    950 => '#3b0764'
  },
  fuchsia: {
    50 => '#fdf4ff',
    100 => '#fae8ff',
    200 => '#f5d0fe',
    300 => '#f0abfc',
    400 => '#e879f9',
    500 => '#d946ef',
    600 => '#c026d3',
    700 => '#a21caf',
    800 => '#86198f',
    900 => '#701a75',
    950 => '#4a044e'
  },
  pink: {
    50 => '#fdf2f8',
    100 => '#fce7f3',
    200 => '#fbcfe8',
    300 => '#f9a8d4',
    400 => '#f472b6',
    500 => '#ec4899',
    600 => '#db2777',
    700 => '#be185d',
    800 => '#9d174d',
    900 => '#831843',
    950 => '#500724'
  },
  rose: {
    50 => '#fff1f2',
    100 => '#ffe4e6',
    200 => '#fecdd3',
    300 => '#fda4af',
    400 => '#fb7185',
    500 => '#f43f5e',
    600 => '#e11d48',
    700 => '#be123c',
    800 => '#9f1239',
    900 => '#881337',
    950 => '#4c0519'
  }
}.freeze

Class Method Summary collapse

Class Method Details

.allObject



7
8
9
# File 'lib/default_avatar_generator/colors.rb', line 7

def all
  COLORS
end

.available_colorsObject



15
16
17
# File 'lib/default_avatar_generator/colors.rb', line 15

def available_colors
  COLORS.keys
end

.available_shadesObject



27
28
29
# File 'lib/default_avatar_generator/colors.rb', line 27

def available_shades
  [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950]
end

.contrast_shadesObject



35
36
37
# File 'lib/default_avatar_generator/colors.rb', line 35

def contrast_shades
  [50, 100, 950]
end

.get(color_name, shade = 500) ⇒ Object



11
12
13
# File 'lib/default_avatar_generator/colors.rb', line 11

def get(color_name, shade = 500)
  COLORS.dig(color_name.to_sym, shade)
end

.opposite_shade(shade) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/default_avatar_generator/colors.rb', line 39

def opposite_shade(shade)
  shade_map = {
    50 => 950,
    100 => 900,
    200 => 800,
    300 => 700,
    400 => 600,
    500 => 500,
    600 => 400,
    700 => 300,
    800 => 200,
    900 => 100,
    950 => 50
  }
  shade_map[shade]
end

.select_contrast_colorObject



23
24
25
# File 'lib/default_avatar_generator/colors.rb', line 23

def select_contrast_color
  get(available_colors.sample, contrast_shades.sample)
end

.select_solid_colorObject



19
20
21
# File 'lib/default_avatar_generator/colors.rb', line 19

def select_solid_color
  get(available_colors.sample, solid_shades.sample)
end

.solid_shadesObject



31
32
33
# File 'lib/default_avatar_generator/colors.rb', line 31

def solid_shades
  [300, 400, 500, 600, 700, 800, 900]
end