This commit is contained in:
@@ -0,0 +1,149 @@
|
||||
# -*- coding: utf-8 -*- #
|
||||
# frozen_string_literal: true
|
||||
|
||||
module Rouge
|
||||
module Themes
|
||||
class Github < CSSTheme
|
||||
name 'github'
|
||||
|
||||
# Primer primitives
|
||||
# https://github.com/primer/primitives/tree/main/src/tokens
|
||||
P_RED_0 = {:light => '#ffebe9', :dark => '#ffdcd7'}
|
||||
P_RED_3 = {:dark => '#ff7b72'}
|
||||
P_RED_5 = {:light => '#cf222e'}
|
||||
P_RED_7 = {:light => '#82071e', :dark => '#8e1519'}
|
||||
P_RED_8 = {:dark => '#67060c'}
|
||||
P_ORANGE_2 = {:dark => '#ffa657'}
|
||||
P_ORANGE_6 = {:light => '#953800'}
|
||||
P_GREEN_0 = {:light => '#dafbe1', :dark => '#aff5b4'}
|
||||
P_GREEN_1 = {:dark => '#7ee787'}
|
||||
P_GREEN_6 = {:light => '#116329'}
|
||||
P_GREEN_8 = {:dark => '#033a16'}
|
||||
P_BLUE_1 = {:dark => '#a5d6ff'}
|
||||
P_BLUE_2 = {:dark => '#79c0ff'}
|
||||
P_BLUE_5 = {:dark => '#1f6feb'}
|
||||
P_BLUE_6 = {:light => '#0550ae'}
|
||||
P_BLUE_8 = {:light => '#0a3069'}
|
||||
P_PURPLE_2 = {:dark => '#d2a8ff'}
|
||||
P_PURPLE_5 = {:light => '#8250df'}
|
||||
P_GRAY_0 = {:light => '#f6f8fa', :dark => '#f0f6fc'}
|
||||
P_GRAY_1 = {:dark => '#c9d1d9'}
|
||||
P_GRAY_3 = {:dark => '#8b949e'}
|
||||
P_GRAY_5 = {:light => '#6e7781'}
|
||||
P_GRAY_8 = {:dark => '#161b22'}
|
||||
P_GRAY_9 = {:light => '#24292f'}
|
||||
|
||||
extend HasModes
|
||||
|
||||
def self.light!
|
||||
mode :dark # indicate that there is a dark variant
|
||||
mode! :light
|
||||
end
|
||||
|
||||
def self.dark!
|
||||
mode :light # indicate that there is a light variant
|
||||
mode! :dark
|
||||
end
|
||||
|
||||
def self.make_dark!
|
||||
palette :comment => P_GRAY_3[@mode]
|
||||
palette :constant => P_BLUE_2[@mode]
|
||||
palette :entity => P_PURPLE_2[@mode]
|
||||
palette :heading => P_BLUE_5[@mode]
|
||||
palette :keyword => P_RED_3[@mode]
|
||||
palette :string => P_BLUE_1[@mode]
|
||||
palette :tag => P_GREEN_1[@mode]
|
||||
palette :variable => P_ORANGE_2[@mode]
|
||||
|
||||
palette :fgDefault => P_GRAY_1[@mode]
|
||||
palette :bgDefault => P_GRAY_8[@mode]
|
||||
|
||||
palette :fgInserted => P_GREEN_0[@mode]
|
||||
palette :bgInserted => P_GREEN_8[@mode]
|
||||
|
||||
palette :fgDeleted => P_RED_0[@mode]
|
||||
palette :bgDeleted => P_RED_8[@mode]
|
||||
|
||||
palette :fgError => P_GRAY_0[@mode]
|
||||
palette :bgError => P_RED_7[@mode]
|
||||
end
|
||||
|
||||
def self.make_light!
|
||||
palette :comment => P_GRAY_5[@mode]
|
||||
palette :constant => P_BLUE_6[@mode]
|
||||
palette :entity => P_PURPLE_5[@mode]
|
||||
palette :heading => P_BLUE_6[@mode]
|
||||
palette :keyword => P_RED_5[@mode]
|
||||
palette :string => P_BLUE_8[@mode]
|
||||
palette :tag => P_GREEN_6[@mode]
|
||||
palette :variable => P_ORANGE_6[@mode]
|
||||
|
||||
palette :fgDefault => P_GRAY_9[@mode]
|
||||
palette :bgDefault => P_GRAY_0[@mode]
|
||||
|
||||
palette :fgInserted => P_GREEN_6[@mode]
|
||||
palette :bgInserted => P_GREEN_0[@mode]
|
||||
|
||||
palette :fgDeleted => P_RED_7[@mode]
|
||||
palette :bgDeleted => P_RED_0[@mode]
|
||||
|
||||
palette :fgError => P_GRAY_0[@mode]
|
||||
palette :bgError => P_RED_7[@mode]
|
||||
end
|
||||
|
||||
light!
|
||||
|
||||
style Text, :fg => :fgDefault, :bg => :bgDefault
|
||||
|
||||
style Keyword, :fg => :keyword
|
||||
|
||||
style Generic::Error, :fg => :fgError
|
||||
|
||||
style Generic::Deleted, :fg => :fgDeleted, :bg => :bgDeleted
|
||||
|
||||
style Name::Builtin,
|
||||
Name::Class,
|
||||
Name::Constant,
|
||||
Name::Namespace, :fg => :variable
|
||||
|
||||
style Literal::String::Regex,
|
||||
Name::Attribute,
|
||||
Name::Tag, :fg => :tag
|
||||
|
||||
style Generic::Inserted, :fg => :fgInserted, :bg => :bgInserted
|
||||
style Generic::EmphStrong, :italic => true, :bold => true
|
||||
|
||||
style Keyword::Constant,
|
||||
Literal,
|
||||
Literal::String::Backtick,
|
||||
Name::Builtin::Pseudo,
|
||||
Name::Exception,
|
||||
Name::Label,
|
||||
Name::Property,
|
||||
Name::Variable,
|
||||
Operator, :fg => :constant
|
||||
|
||||
style Generic::Heading,
|
||||
Generic::Subheading, :fg => :heading, :bold => true
|
||||
|
||||
style Literal::String, :fg => :string
|
||||
|
||||
style Name::Decorator,
|
||||
Name::Function, :fg => :entity
|
||||
|
||||
style Error, :fg => :fgError, :bg => :bgError
|
||||
|
||||
style Comment,
|
||||
Generic::Lineno,
|
||||
Generic::Traceback, :fg => :comment
|
||||
|
||||
style Name::Entity,
|
||||
Literal::String::Interpol, :fg => :fgDefault
|
||||
|
||||
style Generic::Emph, :fg => :fgDefault, :italic => true
|
||||
|
||||
style Generic::Strong, :fg => :fgDefault, :bold => true
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user