Skip to content
This repository was archived by the owner on Aug 25, 2024. It is now read-only.

Commit 77f7270

Browse files
committed
introduce Material.Icons, add icon color in settings
1 parent 6ae4ede commit 77f7270

File tree

9 files changed

+303
-3
lines changed

9 files changed

+303
-3
lines changed

build/Program.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,8 @@ public override void Run(BuildContext context)
115115
var ptn =
116116
@"Clipboar.+\.dll|"
117117
+ @".+\.png|"
118-
+ @"Dapper\.dll|"
118+
+ @"Dapper\.dll|Svg\.dll|Material\.Icons\.dll|"
119+
+ @"ExCSS\.dll|"
119120
+ @"plugin\.json|H\.InputSimulator\.dll|"
120121
+ @"SQLitePCLRaw.+\.dll|Microsoft.+(S|s)qlite\.dll";
121122
var files = context.GetFiles($"{srcDir}/**/*");

src/ClipboardR.Core.Test/ClipboardR.Core.Test.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
<ItemGroup>
1414
<PackageReference Include="Dapper" Version="2.0.151" />
15+
<PackageReference Include="Material.Icons.WPF" Version="2.0.0" />
1516
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.5.0"/>
1617
<PackageReference Include="xunit" Version="2.4.2"/>
1718
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">

src/ClipboardR.Core/ClipboardR.Core.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@
2020
<ItemGroup>
2121
<PackageReference Include="Dapper" Version="2.0.151" />
2222
<PackageReference Include="Flow.Launcher.Plugin" Version="4.1.1" />
23+
<PackageReference Include="Material.Icons.WPF" Version="2.0.0" />
2324
<PackageReference Include="Microsoft.Data.Sqlite" Version="7.0.10" />
25+
<PackageReference Include="Svg" Version="3.4.4" />
2426
</ItemGroup>
2527

2628

src/ClipboardR.Core/Enums.cs

Lines changed: 249 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,252 @@ public enum CbResultType
2121
Record,
2222
Clear,
2323
}
24+
25+
public class CbColors
26+
{
27+
public const string Transparent = "transparent";
28+
public const string Black = "#000";
29+
public const string White = "#fff";
30+
public const string Slate50 = "#f8fafc";
31+
public const string Slate100 = "#f1f5f9";
32+
public const string Slate200 = "#e2e8f0";
33+
public const string Slate300 = "#cbd5e1";
34+
public const string Slate400 = "#94a3b8";
35+
public const string Slate500 = "#64748b";
36+
public const string Slate600 = "#475569";
37+
public const string Slate700 = "#334155";
38+
public const string Slate800 = "#1e293b";
39+
public const string Slate900 = "#0f172a";
40+
public const string Slate950 = "#020617";
41+
public const string Gray50 = "#f9fafb";
42+
public const string Gray100 = "#f3f4f6";
43+
public const string Gray200 = "#e5e7eb";
44+
public const string Gray300 = "#d1d5db";
45+
public const string Gray400 = "#9ca3af";
46+
public const string Gray500 = "#6b7280";
47+
public const string Gray600 = "#4b5563";
48+
public const string Gray700 = "#374151";
49+
public const string Gray800 = "#1f2937";
50+
public const string Gray900 = "#111827";
51+
public const string Gray950 = "#030712";
52+
public const string Zinc50 = "#fafafa";
53+
public const string Zinc100 = "#f4f4f5";
54+
public const string Zinc200 = "#e4e4e7";
55+
public const string Zinc300 = "#d4d4d8";
56+
public const string Zinc400 = "#a1a1aa";
57+
public const string Zinc500 = "#71717a";
58+
public const string Zinc600 = "#52525b";
59+
public const string Zinc700 = "#3f3f46";
60+
public const string Zinc800 = "#27272a";
61+
public const string Zinc900 = "#18181b";
62+
public const string Zinc950 = "#09090b";
63+
public const string Neutral50 = "#fafafa";
64+
public const string Neutral100 = "#f5f5f5";
65+
public const string Neutral200 = "#e5e5e5";
66+
public const string Neutral300 = "#d4d4d4";
67+
public const string Neutral400 = "#a3a3a3";
68+
public const string Neutral500 = "#737373";
69+
public const string Neutral600 = "#525252";
70+
public const string Neutral700 = "#404040";
71+
public const string Neutral800 = "#262626";
72+
public const string Neutral900 = "#171717";
73+
public const string Neutral950 = "#0a0a0a";
74+
public const string Stone50 = "#fafaf9";
75+
public const string Stone100 = "#f5f5f4";
76+
public const string Stone200 = "#e7e5e4";
77+
public const string Stone300 = "#d6d3d1";
78+
public const string Stone400 = "#a8a29e";
79+
public const string Stone500 = "#78716c";
80+
public const string Stone600 = "#57534e";
81+
public const string Stone700 = "#44403c";
82+
public const string Stone800 = "#292524";
83+
public const string Stone900 = "#1c1917";
84+
public const string Stone950 = "#0c0a09";
85+
public const string Red50 = "#fef2f2";
86+
public const string Red100 = "#fee2e2";
87+
public const string Red200 = "#fecaca";
88+
public const string Red300 = "#fca5a5";
89+
public const string Red400 = "#f87171";
90+
public const string Red500 = "#ef4444";
91+
public const string Red600 = "#dc2626";
92+
public const string Red700 = "#b91c1c";
93+
public const string Red800 = "#991b1b";
94+
public const string Red900 = "#7f1d1d";
95+
public const string Red950 = "#450a0a";
96+
public const string Orange50 = "#fff7ed";
97+
public const string Orange100 = "#ffedd5";
98+
public const string Orange200 = "#fed7aa";
99+
public const string Orange300 = "#fdba74";
100+
public const string Orange400 = "#fb923c";
101+
public const string Orange500 = "#f97316";
102+
public const string Orange600 = "#ea580c";
103+
public const string Orange700 = "#c2410c";
104+
public const string Orange800 = "#9a3412";
105+
public const string Orange900 = "#7c2d12";
106+
public const string Orange950 = "#431407";
107+
public const string Amber50 = "#fffbeb";
108+
public const string Amber100 = "#fef3c7";
109+
public const string Amber200 = "#fde68a";
110+
public const string Amber300 = "#fcd34d";
111+
public const string Amber400 = "#fbbf24";
112+
public const string Amber500 = "#f59e0b";
113+
public const string Amber600 = "#d97706";
114+
public const string Amber700 = "#b45309";
115+
public const string Amber800 = "#92400e";
116+
public const string Amber900 = "#78350f";
117+
public const string Amber950 = "#451a03";
118+
public const string Yellow50 = "#fefce8";
119+
public const string Yellow100 = "#fef9c3";
120+
public const string Yellow200 = "#fef08a";
121+
public const string Yellow300 = "#fde047";
122+
public const string Yellow400 = "#facc15";
123+
public const string Yellow500 = "#eab308";
124+
public const string Yellow600 = "#ca8a04";
125+
public const string Yellow700 = "#a16207";
126+
public const string Yellow800 = "#854d0e";
127+
public const string Yellow900 = "#713f12";
128+
public const string Yellow950 = "#422006";
129+
public const string Lime50 = "#f7fee7";
130+
public const string Lime100 = "#ecfccb";
131+
public const string Lime200 = "#d9f99d";
132+
public const string Lime300 = "#bef264";
133+
public const string Lime400 = "#a3e635";
134+
public const string Lime500 = "#84cc16";
135+
public const string Lime600 = "#65a30d";
136+
public const string Lime700 = "#4d7c0f";
137+
public const string Lime800 = "#3f6212";
138+
public const string Lime900 = "#365314";
139+
public const string Lime950 = "#1a2e05";
140+
public const string Green50 = "#f0fdf4";
141+
public const string Green100 = "#dcfce7";
142+
public const string Green200 = "#bbf7d0";
143+
public const string Green300 = "#86efac";
144+
public const string Green400 = "#4ade80";
145+
public const string Green500 = "#22c55e";
146+
public const string Green600 = "#16a34a";
147+
public const string Green700 = "#15803d";
148+
public const string Green800 = "#166534";
149+
public const string Green900 = "#14532d";
150+
public const string Green950 = "#052e16";
151+
public const string Emerald50 = "#ecfdf5";
152+
public const string Emerald100 = "#d1fae5";
153+
public const string Emerald200 = "#a7f3d0";
154+
public const string Emerald300 = "#6ee7b7";
155+
public const string Emerald400 = "#34d399";
156+
public const string Emerald500 = "#10b981";
157+
public const string Emerald600 = "#059669";
158+
public const string Emerald700 = "#047857";
159+
public const string Emerald800 = "#065f46";
160+
public const string Emerald900 = "#064e3b";
161+
public const string Emerald950 = "#022c22";
162+
public const string Teal50 = "#f0fdfa";
163+
public const string Teal100 = "#ccfbf1";
164+
public const string Teal200 = "#99f6e4";
165+
public const string Teal300 = "#5eead4";
166+
public const string Teal400 = "#2dd4bf";
167+
public const string Teal500 = "#14b8a6";
168+
public const string Teal600 = "#0d9488";
169+
public const string Teal700 = "#0f766e";
170+
public const string Teal800 = "#115e59";
171+
public const string Teal900 = "#134e4a";
172+
public const string Teal950 = "#042f2e";
173+
public const string Cyan50 = "#ecfeff";
174+
public const string Cyan100 = "#cffafe";
175+
public const string Cyan200 = "#a5f3fc";
176+
public const string Cyan300 = "#67e8f9";
177+
public const string Cyan400 = "#22d3ee";
178+
public const string Cyan500 = "#06b6d4";
179+
public const string Cyan600 = "#0891b2";
180+
public const string Cyan700 = "#0e7490";
181+
public const string Cyan800 = "#155e75";
182+
public const string Cyan900 = "#164e63";
183+
public const string Cyan950 = "#083344";
184+
public const string Sky50 = "#f0f9ff";
185+
public const string Sky100 = "#e0f2fe";
186+
public const string Sky200 = "#bae6fd";
187+
public const string Sky300 = "#7dd3fc";
188+
public const string Sky400 = "#38bdf8";
189+
public const string Sky500 = "#0ea5e9";
190+
public const string Sky600 = "#0284c7";
191+
public const string Sky700 = "#0369a1";
192+
public const string Sky800 = "#075985";
193+
public const string Sky900 = "#0c4a6e";
194+
public const string Sky950 = "#082f49";
195+
public const string Blue50 = "#eff6ff";
196+
public const string Blue100 = "#dbeafe";
197+
public const string Blue200 = "#bfdbfe";
198+
public const string Blue300 = "#93c5fd";
199+
public const string Blue400 = "#60a5fa";
200+
public const string Blue500 = "#3b82f6";
201+
public const string Blue600 = "#2563eb";
202+
public const string Blue700 = "#1d4ed8";
203+
public const string Blue800 = "#1e40af";
204+
public const string Blue900 = "#1e3a8a";
205+
public const string Blue950 = "#172554";
206+
public const string Indigo50 = "#eef2ff";
207+
public const string Indigo100 = "#e0e7ff";
208+
public const string Indigo200 = "#c7d2fe";
209+
public const string Indigo300 = "#a5b4fc";
210+
public const string Indigo400 = "#818cf8";
211+
public const string Indigo500 = "#6366f1";
212+
public const string Indigo600 = "#4f46e5";
213+
public const string Indigo700 = "#4338ca";
214+
public const string Indigo800 = "#3730a3";
215+
public const string Indigo900 = "#312e81";
216+
public const string Indigo950 = "#1e1b4b";
217+
public const string Violet50 = "#f5f3ff";
218+
public const string Violet100 = "#ede9fe";
219+
public const string Violet200 = "#ddd6fe";
220+
public const string Violet300 = "#c4b5fd";
221+
public const string Violet400 = "#a78bfa";
222+
public const string Violet500 = "#8b5cf6";
223+
public const string Violet600 = "#7c3aed";
224+
public const string Violet700 = "#6d28d9";
225+
public const string Violet800 = "#5b21b6";
226+
public const string Violet900 = "#4c1d95";
227+
public const string Violet950 = "#2e1065";
228+
public const string Purple50 = "#faf5ff";
229+
public const string Purple100 = "#f3e8ff";
230+
public const string Purple200 = "#e9d5ff";
231+
public const string Purple300 = "#d8b4fe";
232+
public const string Purple400 = "#c084fc";
233+
public const string Purple500 = "#a855f7";
234+
public const string Purple600 = "#9333ea";
235+
public const string Purple700 = "#7e22ce";
236+
public const string Purple800 = "#6b21a8";
237+
public const string Purple900 = "#581c87";
238+
public const string Purple950 = "#3b0764";
239+
public const string Fuchsia50 = "#fdf4ff";
240+
public const string Fuchsia100 = "#fae8ff";
241+
public const string Fuchsia200 = "#f5d0fe";
242+
public const string Fuchsia300 = "#f0abfc";
243+
public const string Fuchsia400 = "#e879f9";
244+
public const string Fuchsia500 = "#d946ef";
245+
public const string Fuchsia600 = "#c026d3";
246+
public const string Fuchsia700 = "#a21caf";
247+
public const string Fuchsia800 = "#86198f";
248+
public const string Fuchsia900 = "#701a75";
249+
public const string Fuchsia950 = "#4a044e";
250+
public const string Pink50 = "#fdf2f8";
251+
public const string Pink100 = "#fce7f3";
252+
public const string Pink200 = "#fbcfe8";
253+
public const string Pink300 = "#f9a8d4";
254+
public const string Pink400 = "#f472b6";
255+
public const string Pink500 = "#ec4899";
256+
public const string Pink600 = "#db2777";
257+
public const string Pink700 = "#be185d";
258+
public const string Pink800 = "#9d174d";
259+
public const string Pink900 = "#831843";
260+
public const string Pink950 = "#500724";
261+
public const string Rose50 = "#fff1f2";
262+
public const string Rose100 = "#ffe4e6";
263+
public const string Rose200 = "#fecdd3";
264+
public const string Rose300 = "#fda4af";
265+
public const string Rose400 = "#fb7185";
266+
public const string Rose500 = "#f43f5e";
267+
public const string Rose600 = "#e11d48";
268+
public const string Rose700 = "#be123c";
269+
public const string Rose800 = "#9f1239";
270+
public const string Rose900 = "#881337";
271+
public const string Rose950 = "#4c0519";
272+
}

src/ClipboardR.Core/Extension.cs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
using System.Security.Cryptography;
33
using System.Text;
44
using System.Windows.Media.Imaging;
5+
using Material.Icons;
6+
using Svg;
57

68
namespace ClipboardR.Core;
79

@@ -50,6 +52,34 @@ public static Image ToImage(this string b64)
5052
return new Bitmap(stream);
5153
}
5254

55+
public static Image ToImage(
56+
this MaterialIconKind kind,
57+
string fillColor = CbColors.Blue500,
58+
int width = 100,
59+
int height = 100
60+
)
61+
{
62+
var s = MaterialIconDataProvider.GetData(kind);
63+
var ss = $"""
64+
<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" version="1.1">
65+
<path d="{s}" fill="{fillColor}"/>
66+
</svg>
67+
""";
68+
var svg = SvgDocument.FromSvg<SvgDocument>(ss);
69+
var img = svg.Draw(width, height);
70+
return img;
71+
}
72+
73+
public static BitmapImage ToBitmapImage(
74+
this MaterialIconKind kind,
75+
string fillColor = CbColors.Blue500,
76+
int width = 100,
77+
int height = 100
78+
)
79+
{
80+
return kind.ToImage(fillColor, width, height).ToBitmapImage();
81+
}
82+
5383
public static string GetMd5(this string s)
5484
{
5585
byte[] inputBytes = Encoding.UTF8.GetBytes(s);

src/ClipboardR.Core/Settings.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ public class Settings
2424

2525
// TODO: add this in settings panel
2626
public string ClearKeyword { get; set; } = "clear";
27+
public string IconColor { get; set; } = CbColors.Blue500;
2728

2829
public void Save()
2930
{

src/ClipboardR.Panels/ClipboardR.Panels.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626

2727
<ItemGroup>
2828
<PackageReference Include="Flow.Launcher.Plugin" Version="4.1.1" />
29+
<PackageReference Include="Material.Icons.WPF" Version="2.0.0" />
2930
<PackageReference Include="System.Drawing.Common" Version="7.0.0" />
3031
</ItemGroup>
3132

src/ClipboardR/ClipboardR.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
<PackageReference Include="Flow.Launcher.Plugin" Version="4.1.1" />
4141
<PackageReference Include="H.InputSimulator" Version="1.4.0">
4242
</PackageReference>
43+
<PackageReference Include="Material.Icons.WPF" Version="2.0.0" />
4344
</ItemGroup>
4445

4546
<ItemGroup>

0 commit comments

Comments
 (0)