Created
May 1, 2020 20:28
-
-
Save MBeliou/be358b9c68035f6061681010c49b448c to your computer and use it in GitHub Desktop.
Generate the tailwindUI colors for flutter
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'package:flutter/material.dart'; | |
Map<String, Map<String, String>> colors = { | |
/* | |
"transparent": "transparent", | |
"white": "#ffffff", | |
"black": "#000000", | |
*/ | |
"gray": { | |
"50": "#f9fafb", | |
"100": "#f4f5f7", | |
"200": "#e5e7eb", | |
"300": "#d2d6dc", | |
"400": "#9fa6b2", | |
"500": "#6b7280", | |
"600": "#4b5563", | |
"700": "#374151", | |
"800": "#252f3f", | |
"900": "#161e2e" | |
}, | |
"cool_gray": { | |
"50": "#fbfdfe", | |
"100": "#f1f5f9", | |
"200": "#e2e8f0", | |
"300": "#cfd8e3", | |
"400": "#97a6ba", | |
"500": "#64748b", | |
"600": "#475569", | |
"700": "#364152", | |
"800": "#27303f", | |
"900": "#1a202e" | |
}, | |
"red": { | |
"50": "#fdf2f2", | |
"100": "#fde8e8", | |
"200": "#fbd5d5", | |
"300": "#f8b4b4", | |
"400": "#f98080", | |
"500": "#f05252", | |
"600": "#e02424", | |
"700": "#c81e1e", | |
"800": "#9b1c1c", | |
"900": "#771d1d" | |
}, | |
"orange": { | |
"50": "#fff8f1", | |
"100": "#feecdc", | |
"200": "#fcd9bd", | |
"300": "#fdba8c", | |
"400": "#ff8a4c", | |
"500": "#ff5a1f", | |
"600": "#d03801", | |
"700": "#b43403", | |
"800": "#8a2c0d", | |
"900": "#771d1d" | |
}, | |
"yellow": { | |
"50": "#fdfdea", | |
"100": "#fdf6b2", | |
"200": "#fce96a", | |
"300": "#faca15", | |
"400": "#e3a008", | |
"500": "#c27803", | |
"600": "#9f580a", | |
"700": "#8e4b10", | |
"800": "#723b13", | |
"900": "#633112" | |
}, | |
"green": { | |
"50": "#f3faf7", | |
"100": "#def7ec", | |
"200": "#bcf0da", | |
"300": "#84e1bc", | |
"400": "#31c48d", | |
"500": "#0e9f6e", | |
"600": "#057a55", | |
"700": "#046c4e", | |
"800": "#03543f", | |
"900": "#014737" | |
}, | |
"teal": { | |
"50": "#edfafa", | |
"100": "#d5f5f6", | |
"200": "#afecef", | |
"300": "#7edce2", | |
"400": "#16bdca", | |
"500": "#0694a2", | |
"600": "#047481", | |
"700": "#036672", | |
"800": "#05505c", | |
"900": "#014451" | |
}, | |
"blue": { | |
"50": "#ebf5ff", | |
"100": "#e1effe", | |
"200": "#c3ddfd", | |
"300": "#a4cafe", | |
"400": "#76a9fa", | |
"500": "#3f83f8", | |
"600": "#1c64f2", | |
"700": "#1a56db", | |
"800": "#1e429f", | |
"900": "#233876" | |
}, | |
"indigo": { | |
"50": "#f0f5ff", | |
"100": "#e5edff", | |
"200": "#cddbfe", | |
"300": "#b4c6fc", | |
"400": "#8da2fb", | |
"500": "#6875f5", | |
"600": "#5850ec", | |
"700": "#5145cd", | |
"800": "#42389d", | |
"900": "#362f78" | |
}, | |
"purple": { | |
"50": "#f6f5ff", | |
"100": "#edebfe", | |
"200": "#dcd7fe", | |
"300": "#cabffd", | |
"400": "#ac94fa", | |
"500": "#9061f9", | |
"600": "#7e3af2", | |
"700": "#6c2bd9", | |
"800": "#5521b5", | |
"900": "#4a1d96" | |
}, | |
"pink": { | |
"50": "#fdf2f8", | |
"100": "#fce8f3", | |
"200": "#fad1e8", | |
"300": "#f8b4d9", | |
"400": "#f17eb8", | |
"500": "#e74694", | |
"600": "#d61f69", | |
"700": "#bf125d", | |
"800": "#99154b", | |
"900": "#751a3d" | |
} | |
}; | |
void main() async { | |
colors.forEach((k, v) { | |
var primaryVal = k; | |
var primaryValCode = ""; | |
print("static const TWColor $k = TWColor("); | |
print("_${primaryVal}PrimaryValue,{"); | |
v.entries.forEach((vx) { | |
//primaryVal = vx.key; | |
if (vx.key == "500") { | |
primaryValCode = vx.value; | |
print("${vx.key}: Color(_${primaryVal}PrimaryValue),"); | |
} else { | |
Color currColor = HexColor.fromHex(vx.value); | |
print("${vx.key}: $currColor,"); | |
} | |
}); | |
print("});"); | |
print(" static const int _${primaryVal}PrimaryValue = ${HexColor.fromHex(primaryValCode).toString()};"); // TODO: Remove 'Color' from the generated text | |
}); | |
} | |
extension HexColor on Color { | |
/// String is in the format "aabbcc" or "ffaabbcc" with an optional leading "#". | |
static Color fromHex(String hexString) { | |
final buffer = StringBuffer(); | |
if (hexString.length == 6 || hexString.length == 7) buffer.write('ff'); | |
buffer.write(hexString.replaceFirst('#', '')); | |
return Color(int.parse(buffer.toString(), radix: 16)); | |
} | |
/// Prefixes a hash sign if [leadingHashSign] is set to `true` (default is `true`). | |
String toHex({bool leadingHashSign = true}) => '${leadingHashSign ? '#' : ''}' | |
'${alpha.toRadixString(16).padLeft(2, '0')}' | |
'${red.toRadixString(16).padLeft(2, '0')}' | |
'${green.toRadixString(16).padLeft(2, '0')}' | |
'${blue.toRadixString(16).padLeft(2, '0')}'; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment