diff --git a/changelog.d/color-schemes.add b/changelog.d/color-schemes.add deleted file mode 100644 index 5410730e1..000000000 --- a/changelog.d/color-schemes.add +++ /dev/null @@ -1 +0,0 @@ -Some new default color schemes diff --git a/src/components/button_unstyled.style.js b/src/components/button_unstyled.style.js index 4142f9a3c..a4f0f6f99 100644 --- a/src/components/button_unstyled.style.js +++ b/src/components/button_unstyled.style.js @@ -10,13 +10,14 @@ export default { }, validInnerComponents: [ 'Text', - 'Link', 'Icon', 'Badge' ], defaultRules: [ { directives: { + background: '#ffffff', + opacity: 0, shadow: [] } }, diff --git a/src/components/settings_modal/tabs/appearance_tab.js b/src/components/settings_modal/tabs/appearance_tab.js index fe2001af5..c2b6fa24f 100644 --- a/src/components/settings_modal/tabs/appearance_tab.js +++ b/src/components/settings_modal/tabs/appearance_tab.js @@ -43,7 +43,7 @@ const AppearanceTab = { bundledPalettes: [], compilationCache: {}, fileImporter: newImporter({ - accept: '.json, .iss', + accept: '.json, .piss', validator: this.importValidator, onImport: this.onImport, parser: this.importParser, @@ -305,14 +305,14 @@ const AppearanceTab = { importParser (file, filename) { if (filename.endsWith('.json')) { return JSON.parse(file) - } else if (filename.endsWith('.iss')) { + } else if (filename.endsWith('.piss')) { return deserialize(file) } }, onImport (parsed, filename) { if (filename.endsWith('.json')) { this.$store.dispatch('setThemeCustom', parsed.source || parsed.theme) - } else if (filename.endsWith('.iss')) { + } else if (filename.endsWith('.piss')) { this.$store.dispatch('setStyleCustom', parsed) } }, @@ -324,7 +324,7 @@ const AppearanceTab = { if (filename.endsWith('.json')) { const version = parsed._pleroma_theme_version return version >= 1 || version <= 2 - } else if (filename.endsWith('.iss')) { + } else if (filename.endsWith('.piss')) { if (!Array.isArray(parsed)) return false if (parsed.length < 1) return false if (parsed.find(x => x.component === '@meta') == null) return false diff --git a/src/components/settings_modal/tabs/style_tab/style_tab.js b/src/components/settings_modal/tabs/style_tab/style_tab.js index b51ce5307..d38915c09 100644 --- a/src/components/settings_modal/tabs/style_tab/style_tab.js +++ b/src/components/settings_modal/tabs/style_tab/style_tab.js @@ -604,7 +604,7 @@ export default { const styleExporter = newExporter({ filename: () => exports.name.value ?? 'pleroma_theme', mime: 'text/plain', - extension: 'iss', + extension: 'piss', getExportedObject: () => exportStyleData.value }) @@ -636,7 +636,7 @@ export default { } const styleImporter = newImporter({ - accept: '.iss', + accept: '.piss', parser (string) { return deserialize(string) }, onImportFailure (result) { console.error('Failure importing style:', result) diff --git a/src/services/color_convert/color_convert.js b/src/services/color_convert/color_convert.js index 4d49d9cce..15680c7de 100644 --- a/src/services/color_convert/color_convert.js +++ b/src/services/color_convert/color_convert.js @@ -1,4 +1,4 @@ -import { invertLightness, contrastRatio, convert } from 'chromatism' +import { invertLightness, contrastRatio } from 'chromatism' // useful for visualizing color when debugging export const consoleColor = (color) => console.log('%c##########', 'background: ' + color + '; color: ' + color) @@ -215,36 +215,19 @@ export const rgba2css = function (rgba) { * @param {Boolean} preserve - try to preserve intended text color's hue/saturation (i.e. no BW) */ export const getTextColor = function (bg, text, preserve) { - const originalContrast = getContrastRatio(bg, text) - if (!preserve) { - if (originalContrast < 4.5) { + const contrast = getContrastRatio(bg, text) + + if (contrast < 4.5) { + const base = typeof text.a !== 'undefined' ? { a: text.a } : {} + const result = Object.assign(base, invertLightness(text).rgb) + if (!preserve && getContrastRatio(bg, result) < 4.5) { // B&W return contrastRatio(bg, text).rgb } + // Inverted color + return result } - - const originalColor = convert(text).hex - const invertedColor = invertLightness(originalColor).hex - const invertedContrast = getContrastRatio(bg, invertedColor) - let workColor - - if (invertedContrast > originalContrast) { - workColor = invertedColor - } else { - workColor = originalColor - } - - let contrast = getContrastRatio(bg, text) - const result = convert(rgb2hex(workColor)).hsl - const delta = result.l > 50 ? 1 : -1 - const multiplier = 10 - while (contrast < 4.5) { - result.l += delta * multiplier - contrast = getContrastRatio(bg, result) - } - - const base = typeof text.a !== 'undefined' ? { a: text.a } : {} - return Object.assign(base, result) + return text } /** diff --git a/src/services/theme_data/theme_data_3.service.js b/src/services/theme_data/theme_data_3.service.js index fd088e88a..04a6dfbbd 100644 --- a/src/services/theme_data/theme_data_3.service.js +++ b/src/services/theme_data/theme_data_3.service.js @@ -284,8 +284,8 @@ export const init = ({ computed[selector] = computed[selector] || {} computed[selector].computedRule = computedRule computed[selector].dynamicVars = dynamicVars - computed[selector].virtualDirectives = {} - computed[selector].virtualDirectivesRaw = {} + computed[selector].virtualDirectives = computed[lowerLevelSelector]?.virtualDirectives || {} + computed[selector].virtualDirectivesRaw = computed[lowerLevelSelector]?.virtualDirectivesRaw || {} if (virtualComponents.has(combination.component)) { const virtualName = [ diff --git a/static/styles/Breezy DX.iss b/static/styles/Breezy DX.piss similarity index 100% rename from static/styles/Breezy DX.iss rename to static/styles/Breezy DX.piss diff --git a/static/styles/Redmond DX.iss b/static/styles/Redmond DX.piss similarity index 100% rename from static/styles/Redmond DX.iss rename to static/styles/Redmond DX.piss diff --git a/static/styles/index.json b/static/styles/index.json index 6c1dd1676..52365cd3c 100644 --- a/static/styles/index.json +++ b/static/styles/index.json @@ -1,4 +1,4 @@ { - "RedmondDX": "/static/styles/Redmond DX.iss", - "BreezyDX": "/static/styles/Breezy DX.iss" + "RedmondDX": "/static/styles/Redmond DX.piss", + "BreezyDX": "/static/styles/Breezy DX.piss" }