abachrome-float 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. checksums.yaml +7 -0
  2. data/.envrc +3 -0
  3. data/.rubocop.yml +10 -0
  4. data/CHANGELOG.md +21 -0
  5. data/CLA.md +45 -0
  6. data/CODE-OF-CONDUCT.md +9 -0
  7. data/LICENSE +19 -0
  8. data/README.md +315 -0
  9. data/Rakefile +15 -0
  10. data/SECURITY.md +94 -0
  11. data/abachrome-float.gemspec +36 -0
  12. data/demos/ncurses/plasma.rb +124 -0
  13. data/devenv.lock +171 -0
  14. data/devenv.nix +52 -0
  15. data/devenv.yaml +8 -0
  16. data/lib/abachrome/color.rb +197 -0
  17. data/lib/abachrome/color_mixins/blend.rb +100 -0
  18. data/lib/abachrome/color_mixins/lighten.rb +90 -0
  19. data/lib/abachrome/color_mixins/spectral_mix.rb +70 -0
  20. data/lib/abachrome/color_mixins/to_colorspace.rb +107 -0
  21. data/lib/abachrome/color_mixins/to_grayscale.rb +87 -0
  22. data/lib/abachrome/color_mixins/to_lrgb.rb +121 -0
  23. data/lib/abachrome/color_mixins/to_oklab.rb +117 -0
  24. data/lib/abachrome/color_mixins/to_oklch.rb +110 -0
  25. data/lib/abachrome/color_mixins/to_srgb.rb +142 -0
  26. data/lib/abachrome/color_models/cmyk.rb +159 -0
  27. data/lib/abachrome/color_models/hsv.rb +49 -0
  28. data/lib/abachrome/color_models/lms.rb +38 -0
  29. data/lib/abachrome/color_models/oklab.rb +37 -0
  30. data/lib/abachrome/color_models/oklch.rb +91 -0
  31. data/lib/abachrome/color_models/rgb.rb +58 -0
  32. data/lib/abachrome/color_models/xyz.rb +31 -0
  33. data/lib/abachrome/color_models/yiq.rb +37 -0
  34. data/lib/abachrome/color_space.rb +199 -0
  35. data/lib/abachrome/converter.rb +117 -0
  36. data/lib/abachrome/converters/base.rb +128 -0
  37. data/lib/abachrome/converters/cmyk_to_srgb.rb +42 -0
  38. data/lib/abachrome/converters/lms_to_lrgb.rb +40 -0
  39. data/lib/abachrome/converters/lms_to_srgb.rb +27 -0
  40. data/lib/abachrome/converters/lms_to_xyz.rb +34 -0
  41. data/lib/abachrome/converters/lrgb_to_lms.rb +3 -0
  42. data/lib/abachrome/converters/lrgb_to_oklab.rb +57 -0
  43. data/lib/abachrome/converters/lrgb_to_srgb.rb +59 -0
  44. data/lib/abachrome/converters/lrgb_to_xyz.rb +33 -0
  45. data/lib/abachrome/converters/oklab_to_lms.rb +44 -0
  46. data/lib/abachrome/converters/oklab_to_lrgb.rb +71 -0
  47. data/lib/abachrome/converters/oklab_to_oklch.rb +56 -0
  48. data/lib/abachrome/converters/oklab_to_srgb.rb +46 -0
  49. data/lib/abachrome/converters/oklch_to_lrgb.rb +79 -0
  50. data/lib/abachrome/converters/oklch_to_oklab.rb +52 -0
  51. data/lib/abachrome/converters/oklch_to_srgb.rb +46 -0
  52. data/lib/abachrome/converters/oklch_to_xyz.rb +70 -0
  53. data/lib/abachrome/converters/srgb_to_cmyk.rb +64 -0
  54. data/lib/abachrome/converters/srgb_to_lrgb.rb +55 -0
  55. data/lib/abachrome/converters/srgb_to_oklab.rb +45 -0
  56. data/lib/abachrome/converters/srgb_to_oklch.rb +47 -0
  57. data/lib/abachrome/converters/srgb_to_yiq.rb +49 -0
  58. data/lib/abachrome/converters/xyz_to_lms.rb +34 -0
  59. data/lib/abachrome/converters/xyz_to_oklab.rb +42 -0
  60. data/lib/abachrome/converters/yiq_to_srgb.rb +47 -0
  61. data/lib/abachrome/gamut/base.rb +74 -0
  62. data/lib/abachrome/gamut/p3.rb +27 -0
  63. data/lib/abachrome/gamut/rec2020.rb +25 -0
  64. data/lib/abachrome/gamut/srgb.rb +49 -0
  65. data/lib/abachrome/illuminants/base.rb +35 -0
  66. data/lib/abachrome/illuminants/d50.rb +33 -0
  67. data/lib/abachrome/illuminants/d55.rb +29 -0
  68. data/lib/abachrome/illuminants/d65.rb +37 -0
  69. data/lib/abachrome/illuminants/d75.rb +29 -0
  70. data/lib/abachrome/named/css.rb +157 -0
  71. data/lib/abachrome/named/tailwind.rb +301 -0
  72. data/lib/abachrome/outputs/css.rb +119 -0
  73. data/lib/abachrome/palette.rb +244 -0
  74. data/lib/abachrome/palette_mixins/interpolate.rb +53 -0
  75. data/lib/abachrome/palette_mixins/resample.rb +61 -0
  76. data/lib/abachrome/palette_mixins/stretch_luminance.rb +72 -0
  77. data/lib/abachrome/parsers/css.rb +452 -0
  78. data/lib/abachrome/parsers/hex.rb +52 -0
  79. data/lib/abachrome/parsers/tailwind.rb +45 -0
  80. data/lib/abachrome/spectral.rb +276 -0
  81. data/lib/abachrome/to_abcd.rb +23 -0
  82. data/lib/abachrome/version.rb +7 -0
  83. data/lib/abachrome.rb +242 -0
  84. data/logo.png +0 -0
  85. data/logo.webp +0 -0
  86. data/security/assesments/2025-10-12-SECURITY_ASSESSMENT.md +53 -0
  87. data/security/vex.json +21 -0
  88. metadata +146 -0
metadata ADDED
@@ -0,0 +1,146 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: abachrome-float
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.6
5
+ platform: ruby
6
+ authors:
7
+ - Durable Programming
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 1980-01-01 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: dry-inflector
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '1.0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '1.0'
26
+ description: Abachrome provides a robust set of tools for working with various color
27
+ formats including hex, RGB, HSL, and named colors. Features support for multiple
28
+ color spaces (RGB, HSL, Lab, Oklab), color space conversion, gamut mapping, CSS
29
+ color parsing and formatting, and native float-based color calculations.
30
+ email:
31
+ - commercial@durableprogramming.com
32
+ executables: []
33
+ extensions: []
34
+ extra_rdoc_files: []
35
+ files:
36
+ - ".envrc"
37
+ - ".rubocop.yml"
38
+ - CHANGELOG.md
39
+ - CLA.md
40
+ - CODE-OF-CONDUCT.md
41
+ - LICENSE
42
+ - README.md
43
+ - Rakefile
44
+ - SECURITY.md
45
+ - abachrome-float.gemspec
46
+ - demos/ncurses/plasma.rb
47
+ - devenv.lock
48
+ - devenv.nix
49
+ - devenv.yaml
50
+ - lib/abachrome.rb
51
+ - lib/abachrome/color.rb
52
+ - lib/abachrome/color_mixins/blend.rb
53
+ - lib/abachrome/color_mixins/lighten.rb
54
+ - lib/abachrome/color_mixins/spectral_mix.rb
55
+ - lib/abachrome/color_mixins/to_colorspace.rb
56
+ - lib/abachrome/color_mixins/to_grayscale.rb
57
+ - lib/abachrome/color_mixins/to_lrgb.rb
58
+ - lib/abachrome/color_mixins/to_oklab.rb
59
+ - lib/abachrome/color_mixins/to_oklch.rb
60
+ - lib/abachrome/color_mixins/to_srgb.rb
61
+ - lib/abachrome/color_models/cmyk.rb
62
+ - lib/abachrome/color_models/hsv.rb
63
+ - lib/abachrome/color_models/lms.rb
64
+ - lib/abachrome/color_models/oklab.rb
65
+ - lib/abachrome/color_models/oklch.rb
66
+ - lib/abachrome/color_models/rgb.rb
67
+ - lib/abachrome/color_models/xyz.rb
68
+ - lib/abachrome/color_models/yiq.rb
69
+ - lib/abachrome/color_space.rb
70
+ - lib/abachrome/converter.rb
71
+ - lib/abachrome/converters/base.rb
72
+ - lib/abachrome/converters/cmyk_to_srgb.rb
73
+ - lib/abachrome/converters/lms_to_lrgb.rb
74
+ - lib/abachrome/converters/lms_to_srgb.rb
75
+ - lib/abachrome/converters/lms_to_xyz.rb
76
+ - lib/abachrome/converters/lrgb_to_lms.rb
77
+ - lib/abachrome/converters/lrgb_to_oklab.rb
78
+ - lib/abachrome/converters/lrgb_to_srgb.rb
79
+ - lib/abachrome/converters/lrgb_to_xyz.rb
80
+ - lib/abachrome/converters/oklab_to_lms.rb
81
+ - lib/abachrome/converters/oklab_to_lrgb.rb
82
+ - lib/abachrome/converters/oklab_to_oklch.rb
83
+ - lib/abachrome/converters/oklab_to_srgb.rb
84
+ - lib/abachrome/converters/oklch_to_lrgb.rb
85
+ - lib/abachrome/converters/oklch_to_oklab.rb
86
+ - lib/abachrome/converters/oklch_to_srgb.rb
87
+ - lib/abachrome/converters/oklch_to_xyz.rb
88
+ - lib/abachrome/converters/srgb_to_cmyk.rb
89
+ - lib/abachrome/converters/srgb_to_lrgb.rb
90
+ - lib/abachrome/converters/srgb_to_oklab.rb
91
+ - lib/abachrome/converters/srgb_to_oklch.rb
92
+ - lib/abachrome/converters/srgb_to_yiq.rb
93
+ - lib/abachrome/converters/xyz_to_lms.rb
94
+ - lib/abachrome/converters/xyz_to_oklab.rb
95
+ - lib/abachrome/converters/yiq_to_srgb.rb
96
+ - lib/abachrome/gamut/base.rb
97
+ - lib/abachrome/gamut/p3.rb
98
+ - lib/abachrome/gamut/rec2020.rb
99
+ - lib/abachrome/gamut/srgb.rb
100
+ - lib/abachrome/illuminants/base.rb
101
+ - lib/abachrome/illuminants/d50.rb
102
+ - lib/abachrome/illuminants/d55.rb
103
+ - lib/abachrome/illuminants/d65.rb
104
+ - lib/abachrome/illuminants/d75.rb
105
+ - lib/abachrome/named/css.rb
106
+ - lib/abachrome/named/tailwind.rb
107
+ - lib/abachrome/outputs/css.rb
108
+ - lib/abachrome/palette.rb
109
+ - lib/abachrome/palette_mixins/interpolate.rb
110
+ - lib/abachrome/palette_mixins/resample.rb
111
+ - lib/abachrome/palette_mixins/stretch_luminance.rb
112
+ - lib/abachrome/parsers/css.rb
113
+ - lib/abachrome/parsers/hex.rb
114
+ - lib/abachrome/parsers/tailwind.rb
115
+ - lib/abachrome/spectral.rb
116
+ - lib/abachrome/to_abcd.rb
117
+ - lib/abachrome/version.rb
118
+ - logo.png
119
+ - logo.webp
120
+ - security/assesments/2025-10-12-SECURITY_ASSESSMENT.md
121
+ - security/vex.json
122
+ homepage: https://github.com/durableprogramming/abachrome-float
123
+ licenses:
124
+ - MIT
125
+ metadata:
126
+ homepage_uri: https://github.com/durableprogramming/abachrome-float
127
+ source_code_uri: https://github.com/durableprogramming/abachrome-float
128
+ changelog_uri: https://github.com/durableprogramming/abachrome-float/blob/main/CHANGELOG.md
129
+ rdoc_options: []
130
+ require_paths:
131
+ - lib
132
+ required_ruby_version: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - ">="
135
+ - !ruby/object:Gem::Version
136
+ version: 3.0.0
137
+ required_rubygems_version: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - ">="
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ requirements: []
143
+ rubygems_version: 3.7.2
144
+ specification_version: 4
145
+ summary: A Ruby gem for parsing, manipulating, and managing colors
146
+ test_files: []