Merge branch 'refactor-icon-build-system' into develop
|
@ -1,4 +1,10 @@
|
|||
export interface IIcon {
|
||||
/**
|
||||
* Icon filename
|
||||
* @type {string}
|
||||
* @memberof IIcon
|
||||
*/
|
||||
filename: string;
|
||||
/**
|
||||
* If set to true, the icon is marked as last
|
||||
* @type {boolean}
|
||||
|
|
|
@ -3,8 +3,9 @@ import { IThemeIconsItem } from "./itheme-icons-item";
|
|||
export interface IThemeIconsVariants {
|
||||
iconDefinitions: {
|
||||
"_folder_dark": IThemeIconsItem;
|
||||
"_folder_dark-build": IThemeIconsItem;
|
||||
"_file_folder": IThemeIconsItem;
|
||||
"_file_folder-build": IThemeIconsItem;
|
||||
"_folder_dark_build": IThemeIconsItem;
|
||||
"_folder_light": IThemeIconsItem;
|
||||
"_folder_light_build": IThemeIconsItem;
|
||||
"_folder_vscode": IThemeIconsItem;
|
||||
}
|
||||
}
|
|
@ -9,19 +9,11 @@ import { CHARSET } from "../../extensions/consts/files";
|
|||
import { IDefaults } from "../../extensions/interfaces/idefaults";
|
||||
import { IThemeIconsAccents } from "../interfaces/itheme-icons-accents";
|
||||
import PATHS from '../../extensions/consts/paths'
|
||||
|
||||
// import { IPackageJSON } from "../../extensions/interfaces/ipackage.json";
|
||||
// import { writePackageJSON } from "../helpers/contribute-icon-theme";
|
||||
import { IThemeIconsItem } from '../interfaces/itheme-icons-item';
|
||||
import { getAccentableIcons } from '../../extensions/helpers/fs';
|
||||
|
||||
const BASE_ICON_THEME_PATH: string = path.join(process.cwd(), PATHS.THEMES, './Material-Theme-Icons.json');
|
||||
const DEFAULTS: IDefaults = require('../../extensions/defaults.json');
|
||||
// const PACKAGE_JSON: IPackageJSON = require('../../package.json');
|
||||
|
||||
// const PACKAGE_JSON_ICON_THEME: IPackageJSONThemeIcons = {
|
||||
// id: "material-theme-icons",
|
||||
// label: "Material Theme Icons",
|
||||
// path: "./themes/Material-Theme-Icons.json"
|
||||
// }
|
||||
|
||||
/**
|
||||
* Normalizes icon path
|
||||
|
@ -50,13 +42,17 @@ function replaceNameWithAccent(name: string, accentName: string): string {
|
|||
* @returns {string}
|
||||
*/
|
||||
export function replaceSVGColour(filecontent: string, colour: string): string {
|
||||
return filecontent.replace(new RegExp('.st0\{fill:#([a-zA-Z0-9]{6})\}|path fill="#([a-zA-Z0-9]{6})"'), ($0, $1, $2) => {
|
||||
return filecontent.replace(new RegExp('.st0\{fill:\s{0,}#([a-zA-Z0-9]{6})|path fill="#([a-zA-Z0-9]{6})"'), ($0, $1, $2) => {
|
||||
|
||||
colour = colour.replace('#', '');
|
||||
|
||||
if (!$2) {
|
||||
console.log(`Replacing colour ${ $1 } with ${ colour }`)
|
||||
|
||||
return $0.replace($1, colour);
|
||||
} else {
|
||||
console.log(`Replacing colour ${ $2 } with ${ colour }`)
|
||||
|
||||
return $0.replace($2, colour);
|
||||
}
|
||||
});
|
||||
|
@ -82,6 +78,8 @@ function writeSVGIcon(fromFile: string, toFile: string, accent: string): void {
|
|||
let content: string = replaceSVGColour(fileContent, DEFAULTS.accents[accent]);
|
||||
toFile = normalizeIconPath(toFile);
|
||||
|
||||
gutil.log(gutil.colors.gray(`Accented icon ${toFile} created with colour ${ accent } (${ DEFAULTS.accents[accent] })`));
|
||||
|
||||
fs.writeFileSync(toFile, content);
|
||||
}
|
||||
|
||||
|
@ -89,8 +87,6 @@ function writeSVGIcon(fromFile: string, toFile: string, accent: string): void {
|
|||
export default gulp.task('build:icons.accents', cb => {
|
||||
let basetheme: IThemeIconsAccents;
|
||||
|
||||
// PACKAGE_JSON.contributes.iconThemes = [ PACKAGE_JSON_ICON_THEME ];
|
||||
|
||||
try {
|
||||
basetheme = require(BASE_ICON_THEME_PATH);
|
||||
|
||||
|
@ -99,15 +95,25 @@ export default gulp.task('build:icons.accents', cb => {
|
|||
let themecopy: IThemeIconsAccents = JSON.parse(JSON.stringify(basetheme));
|
||||
let themePath: string = path.join(PATHS.THEMES, `./Material-Theme-Icons-${ key }.json`);
|
||||
|
||||
// let id: string = `${ PACKAGE_JSON_ICON_THEME.id }-${ key.replace(/\s+/g, '-').toLowerCase() }`;
|
||||
// let label: string = `${ PACKAGE_JSON_ICON_THEME.label } - ${ key } accent`;
|
||||
// let themepathJSON: string = `./${ themePath }`;
|
||||
getAccentableIcons().forEach(accentableIconName => {
|
||||
gutil.log(gutil.colors.gray(`Preparing ${ accentableIconName } accented icon`));
|
||||
|
||||
themecopy.iconDefinitions._folder_open.iconPath = replaceNameWithAccent(basetheme.iconDefinitions._folder_open.iconPath, iconName);
|
||||
themecopy.iconDefinitions._folder_open_build.iconPath = replaceNameWithAccent(basetheme.iconDefinitions._folder_open_build.iconPath, iconName);
|
||||
let iconOriginDefinition: IThemeIconsItem = (basetheme.iconDefinitions as any)[accentableIconName];
|
||||
let iconCopyDefinition: IThemeIconsItem = (themecopy.iconDefinitions as any)[accentableIconName];
|
||||
|
||||
writeSVGIcon(basetheme.iconDefinitions._folder_open.iconPath, themecopy.iconDefinitions._folder_open.iconPath, key);
|
||||
writeSVGIcon(basetheme.iconDefinitions._folder_open_build.iconPath, themecopy.iconDefinitions._folder_open_build.iconPath, key);
|
||||
if (iconOriginDefinition !== undefined && typeof iconOriginDefinition.iconPath === 'string' && iconCopyDefinition !== undefined && typeof iconCopyDefinition.iconPath === 'string') {
|
||||
iconCopyDefinition.iconPath = replaceNameWithAccent(iconOriginDefinition.iconPath, iconName);
|
||||
writeSVGIcon(iconOriginDefinition.iconPath, iconCopyDefinition.iconPath, key);
|
||||
} else {
|
||||
gutil.log(gutil.colors.yellow(`Icon ${ accentableIconName } not found`))
|
||||
}
|
||||
});
|
||||
|
||||
// themecopy.iconDefinitions._folder_open.iconPath = replaceNameWithAccent(basetheme.iconDefinitions._folder_open.iconPath, iconName);
|
||||
// themecopy.iconDefinitions._folder_open_build.iconPath = replaceNameWithAccent(basetheme.iconDefinitions._folder_open_build.iconPath, iconName);
|
||||
|
||||
// writeSVGIcon(basetheme.iconDefinitions._folder_open.iconPath, themecopy.iconDefinitions._folder_open.iconPath, key);
|
||||
// writeSVGIcon(basetheme.iconDefinitions._folder_open_build.iconPath, themecopy.iconDefinitions._folder_open_build.iconPath, key);
|
||||
|
||||
// fs.writeFileSync(themePath, JSON.stringify(themecopy));
|
||||
|
||||
|
|
|
@ -36,12 +36,18 @@ export default gulp.task('build:icons.variants', callback => {
|
|||
let variant = variants[variantName];
|
||||
|
||||
theme.iconDefinitions._folder_dark.iconPath = theme.iconDefinitions._folder_dark.iconPath.replace('.svg', `${ variantName }.svg`);
|
||||
theme.iconDefinitions._file_folder.iconPath = theme.iconDefinitions._file_folder.iconPath.replace('.svg', `${ variantName }.svg`);
|
||||
theme.iconDefinitions["_file_folder-build"].iconPath = theme.iconDefinitions["_file_folder-build"].iconPath.replace('.svg', `${ variantName }.svg`);
|
||||
theme.iconDefinitions._folder_dark_build.iconPath = theme.iconDefinitions._folder_dark_build.iconPath.replace('.svg', `${ variantName }.svg`);
|
||||
theme.iconDefinitions._folder_vscode.iconPath = theme.iconDefinitions._folder_vscode.iconPath.replace('.svg', `${ variantName }.svg`);
|
||||
// theme.iconDefinitions._file_folder.iconPath = theme.iconDefinitions._file_folder.iconPath.replace('.svg', `${ variantName }.svg`);
|
||||
// theme.iconDefinitions["_file_folder_build"].iconPath = theme.iconDefinitions["_file_folder_build"].iconPath.replace('.svg', `${ variantName }.svg`);
|
||||
theme.iconDefinitions._folder_light.iconPath = theme.iconDefinitions._folder_light.iconPath.replace('.svg', `${ variantName }.svg`);
|
||||
theme.iconDefinitions["_folder_light_build"].iconPath = theme.iconDefinitions["_folder_light_build"].iconPath.replace('.svg', `${ variantName }.svg`);
|
||||
|
||||
writeIconVariant(basetheme.iconDefinitions._folder_dark.iconPath, theme.iconDefinitions._folder_dark.iconPath, variant);
|
||||
writeIconVariant(basetheme.iconDefinitions._file_folder.iconPath, theme.iconDefinitions._file_folder.iconPath, variant);
|
||||
writeIconVariant(basetheme.iconDefinitions["_file_folder-build"].iconPath, theme.iconDefinitions["_file_folder-build"].iconPath, variant);
|
||||
writeIconVariant(basetheme.iconDefinitions._folder_dark_build.iconPath, theme.iconDefinitions._folder_dark_build.iconPath, variant);
|
||||
writeIconVariant(basetheme.iconDefinitions._folder_light.iconPath, theme.iconDefinitions._folder_light.iconPath, variant);
|
||||
writeIconVariant(basetheme.iconDefinitions._folder_vscode.iconPath, theme.iconDefinitions._folder_vscode.iconPath, variant);
|
||||
writeIconVariant(basetheme.iconDefinitions["_folder_light_build"].iconPath, theme.iconDefinitions["_folder_light_build"].iconPath, variant);
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@ import { CHARSET } from "../../extensions/consts/files";
|
|||
import { IGenericObject } from "../../extensions/interfaces/igeneric-object";
|
||||
import { IIcon } from './../interfaces/iicon';
|
||||
import paths from '../../extensions/consts/paths';
|
||||
import { ensureDir } from '../../extensions/helpers/fs';
|
||||
|
||||
/**
|
||||
* Returns an object implementing the IIcon interface
|
||||
|
@ -17,10 +18,24 @@ import paths from '../../extensions/consts/paths';
|
|||
* @returns {IIcon}
|
||||
*/
|
||||
function iconFactory(fileName: string): IIcon {
|
||||
gutil.log(gutil.colors.gray(`Processing icon ${ fileName }`))
|
||||
let name: string = path.basename(fileName, path.extname(fileName));
|
||||
let filename: string = name;
|
||||
let last: boolean = false;
|
||||
|
||||
return { name, last } as IIcon;
|
||||
// renaming icon for vscode
|
||||
// if the icon filename starts with a folder prefix,
|
||||
// the resulting name will be prefixed only by an underscore,
|
||||
// otherwise the icon will be prefixed by a _file_ prefix
|
||||
if (name.indexOf('folder')) {
|
||||
name = name.indexOf('file') ? `_file_${ name }` : `_${ name }`;
|
||||
} else {
|
||||
name = `_${ name }`;
|
||||
}
|
||||
|
||||
gutil.log(gutil.colors.gray(`VSCode icon name ${ name } with filename ${ filename }`));
|
||||
|
||||
return { filename, name, last } as IIcon;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -35,6 +50,8 @@ export default gulp.task('build:icons', cb => {
|
|||
let partialsData: IGenericObject<any> = {};
|
||||
let pathTemp: string = './themes/.material-theme-icons.tmp';
|
||||
|
||||
ensureDir(path.join(paths.THEMES));
|
||||
|
||||
icons[icons.length - 1].last = true;
|
||||
|
||||
partials.forEach(partial => {
|
||||
|
|
|
@ -10,6 +10,7 @@ import { CHARSET } from "../../extensions/consts/files";
|
|||
import { IDefaults } from "../../extensions/interfaces/idefaults";
|
||||
import { IThemeVariant } from './../interfaces/itheme-variant';
|
||||
import paths from '../../extensions/consts/paths';
|
||||
import { ensureDir } from '../../extensions/helpers/fs';
|
||||
|
||||
let commons: IDefaults = require('../../extensions/defaults.json');
|
||||
|
||||
|
@ -34,19 +35,26 @@ fileNames.forEach(fileName => {
|
|||
* Themes task
|
||||
* Builds Themes
|
||||
*/
|
||||
export default gulp.task('build:themes', () => {
|
||||
export default gulp.task('build:themes', cb => {
|
||||
gulpUtil.log(gulpUtil.colors.gray(HR));
|
||||
|
||||
themeVariants.forEach(variant => {
|
||||
let filePath = path.join(paths.THEMES, `./${variant.name}.json`);
|
||||
let templateData = { commons, variant };
|
||||
let templateJSON: any = JSON.parse(mustache.render(themeTemplateFileContent, templateData));
|
||||
let templateJSONStringified: string = JSON.stringify(templateJSON, null, 2);
|
||||
ensureDir(path.join(paths.THEMES));
|
||||
|
||||
fs.writeFileSync(filePath, templateJSONStringified, { encoding: CHARSET });
|
||||
try {
|
||||
themeVariants.forEach(variant => {
|
||||
let filePath = path.join(paths.THEMES, `./${variant.name}.json`);
|
||||
let templateData = { commons, variant };
|
||||
let templateJSON: any = JSON.parse(mustache.render(themeTemplateFileContent, templateData));
|
||||
let templateJSONStringified: string = JSON.stringify(templateJSON, null, 2);
|
||||
|
||||
gulpUtil.log(MESSAGE_GENERATED, gulpUtil.colors.green(filePath));
|
||||
});
|
||||
fs.writeFileSync(filePath, templateJSONStringified, { encoding: CHARSET });
|
||||
|
||||
gulpUtil.log(MESSAGE_GENERATED, gulpUtil.colors.green(filePath));
|
||||
});
|
||||
} catch (exception) {
|
||||
gulpUtil.log(exception);
|
||||
cb(exception);
|
||||
}
|
||||
|
||||
gulpUtil.log(gulpUtil.colors.gray(HR));
|
||||
});
|
||||
|
|
43
CONTRIBUTING.md
Normal file
|
@ -0,0 +1,43 @@
|
|||
Contributing guidelines
|
||||
=======================
|
||||
|
||||
> Note: this document is intended as a draft, it will be updated soon
|
||||
|
||||
### Requirements:
|
||||
|
||||
* Nodejs ^6.x
|
||||
* Visual Studio Code
|
||||
|
||||
### Installing and compiling source
|
||||
|
||||
First you will have to install node_modules through npm or yarn
|
||||
|
||||
```shell
|
||||
npm install
|
||||
# or
|
||||
yarn install
|
||||
```
|
||||
|
||||
To compile to the source code, you have to execute the build task through visual studio code.
|
||||
First you need to invoke to quick command (on MacOS `⌘P`, while on Linux/windows is `ctrl+p`)
|
||||
then type `task build` and wait until vsc will have finished the task.
|
||||
|
||||
### Testing the theme
|
||||
|
||||
To test the theme, you will have to go to the debug section, select the *Launch Extension* from debug and execute it.
|
||||
|
||||
### Adding new Material Theme commands
|
||||
|
||||
Soon(ish)®
|
||||
|
||||
### Adding new icons
|
||||
|
||||
* Add your icon to the `~/src/icons/svgs` directory.
|
||||
|
||||
* Add the reference to that icon to the `~/src/icons/partials/fileNames.js` or if your icon is referred to a directory adds the reference to the `~/src/icons/partials/folderNames.js` file, otherwise to `~/src/icons/partials/fileExtensions.js` if is referred to a file extension.
|
||||
|
||||
* If you want to make the icon sensitive to be accented, modify the `~/extensions/defaults.json` file, adding the icon definition to the `accentableIcons` array (e.g. ["_folder_open", "_folder_open_build"]) and the path to the `icons.theme.iconDefinitions` object. The same applies to variants (the variant icons array is called "variantsIcons")
|
||||
|
||||
* Execute the build command.
|
||||
|
||||
* Enjoy your new icons in Material Theme, and don't forget to pull request!
|
|
@ -99,11 +99,11 @@ function setWorkbenchOptions(accentSelected: string | undefined, config: any): v
|
|||
let themeID = getCurrentThemeID()
|
||||
let themeIconsID = getCurrentThemeIconsID()
|
||||
|
||||
updateAccent(accentSelected);
|
||||
|
||||
if (isMaterialTheme(themeID) && isMaterialThemeIcons(themeIconsID)) {
|
||||
THEME_ICONS().then(() => reloadWindow());
|
||||
}
|
||||
updateAccent(accentSelected).then(() => {
|
||||
if (isMaterialTheme(themeID) && isMaterialThemeIcons(themeIconsID)) {
|
||||
THEME_ICONS().then(() => reloadWindow());
|
||||
}
|
||||
});
|
||||
}, reason => {
|
||||
vscode.window.showErrorMessage(reason);
|
||||
});
|
||||
|
|
|
@ -1,12 +1,28 @@
|
|||
import {getAccentableIcons} from '../../helpers/fs';
|
||||
import * as fs from 'fs';
|
||||
|
||||
import { getAbsolutePath, getDefaultValues, getThemeIconsByContributeID, getThemeIconsContribute } from "../../helpers/fs";
|
||||
import { getAbsolutePath, getDefaultValues, getThemeIconsByContributeID, getThemeIconsContribute, getVariantIcons } from "../../helpers/fs";
|
||||
import { getCurrentThemeIconsID } from "../../helpers/vscode";
|
||||
import { getCustomSettings, isAccent, isMaterialThemeIcons } from "../../helpers/settings";
|
||||
|
||||
import { CHARSET } from "../../consts/files";
|
||||
import { IPackageJSONThemeIcons } from "../../interfaces/ipackage.json";
|
||||
import { IThemeIcons } from "../../interfaces/itheme-icons";
|
||||
import {IThemeIconsIconPath, IThemeIcons} from '../../interfaces/itheme-icons';
|
||||
|
||||
|
||||
function getIconDefinition(definitions: any, iconname: string): IThemeIconsIconPath {
|
||||
return (definitions as any)[iconname];
|
||||
}
|
||||
|
||||
/**
|
||||
* Replaces icon path with the accented one.
|
||||
* @param {string} iconPath
|
||||
* @param {string} accentName
|
||||
* @returns {string}
|
||||
*/
|
||||
function replaceIconPathWithAccent(iconPath: string, accentName: string): string {
|
||||
return iconPath.replace('.svg', `.accent.${ accentName }.svg`);
|
||||
}
|
||||
|
||||
export const THEME_ICONS = () => {
|
||||
let deferred: any = {};
|
||||
|
@ -27,17 +43,44 @@ export const THEME_ICONS = () => {
|
|||
|
||||
if (isAccent(accentName, defaults)) {
|
||||
let _accentName = accentName.replace(/\s+/, '-');
|
||||
theme.iconDefinitions._folder_open.iconPath = defaults.icons.theme.iconDefinitions._folder_open.iconPath.replace('.svg', `.accent.${ _accentName }.svg`);
|
||||
theme.iconDefinitions._folder_open_build.iconPath = defaults.icons.theme.iconDefinitions._folder_open_build.iconPath.replace('.svg', `.accent.${ _accentName }.svg`);
|
||||
|
||||
getAccentableIcons().forEach(iconname => {
|
||||
let distIcon = getIconDefinition(theme.iconDefinitions, iconname);
|
||||
let outIcon = getIconDefinition(defaults.icons.theme.iconDefinitions, iconname);
|
||||
|
||||
if (typeof distIcon === 'object' && typeof outIcon === 'object') {
|
||||
distIcon.iconPath = replaceIconPathWithAccent(outIcon.iconPath, _accentName)
|
||||
}
|
||||
})
|
||||
|
||||
// theme.iconDefinitions._folder_open.iconPath = defaults.icons.theme.iconDefinitions._folder_open.iconPath.replace('.svg', `.accent.${ _accentName }.svg`);
|
||||
// theme.iconDefinitions._folder_open_build.iconPath = defaults.icons.theme.iconDefinitions._folder_open_build.iconPath.replace('.svg', `.accent.${ _accentName }.svg`);
|
||||
} else {
|
||||
theme.iconDefinitions._folder_open.iconPath = defaults.icons.theme.iconDefinitions._folder_open.iconPath;
|
||||
theme.iconDefinitions._folder_open_build.iconPath = defaults.icons.theme.iconDefinitions._folder_open_build.iconPath;
|
||||
|
||||
getAccentableIcons().forEach(iconname => {
|
||||
let distIcon = getIconDefinition(theme.iconDefinitions, iconname);
|
||||
let outIcon = getIconDefinition(defaults.icons.theme.iconDefinitions, iconname);
|
||||
|
||||
distIcon.iconPath = outIcon.iconPath;
|
||||
});
|
||||
// theme.iconDefinitions._folder_open.iconPath = defaults.icons.theme.iconDefinitions._folder_open.iconPath;
|
||||
// theme.iconDefinitions._folder_open_build.iconPath = defaults.icons.theme.iconDefinitions._folder_open_build.iconPath;
|
||||
}
|
||||
|
||||
theme.iconDefinitions._folder_dark.iconPath = defaults.icons.theme.iconDefinitions._folder_dark.iconPath.replace('.svg', `${ variantName }.svg`);
|
||||
theme.iconDefinitions._file_folder.iconPath = defaults.icons.theme.iconDefinitions._file_folder.iconPath.replace('.svg', `${ variantName }.svg`);
|
||||
theme.iconDefinitions._folder_dark_build.iconPath = defaults.icons.theme.iconDefinitions._folder_dark_build.iconPath.replace('.svg', `${ variantName }.svg`);
|
||||
theme.iconDefinitions["_file_folder-build"].iconPath = defaults.icons.theme.iconDefinitions["_file_folder-build"].iconPath.replace('.svg', `${ variantName }.svg`);
|
||||
getVariantIcons().forEach(iconname => {
|
||||
let distIcon = getIconDefinition(theme.iconDefinitions, iconname);
|
||||
let outIcon = getIconDefinition(defaults.icons.theme.iconDefinitions, iconname);
|
||||
|
||||
if (!!distIcon && !!outIcon) {
|
||||
distIcon.iconPath = outIcon.iconPath.replace('.svg', `${ variantName }.svg`);
|
||||
}
|
||||
})
|
||||
|
||||
// theme.iconDefinitions._folder_dark.iconPath = defaults.icons.theme.iconDefinitions._folder_dark.iconPath.replace('.svg', `${ variantName }.svg`);
|
||||
// theme.iconDefinitions._folder_dark_build.iconPath = defaults.icons.theme.iconDefinitions._folder_dark_build.iconPath.replace('.svg', `${ variantName }.svg`);
|
||||
|
||||
// theme.iconDefinitions._folder_light.iconPath = defaults.icons.theme.iconDefinitions._folder_light.iconPath.replace('.svg', `${ variantName }.svg`);
|
||||
// theme.iconDefinitions["_folder_light_build"].iconPath = defaults.icons.theme.iconDefinitions["_folder_light_build"].iconPath.replace('.svg', `${ variantName }.svg`);
|
||||
|
||||
fs.writeFile(themepath, JSON.stringify(theme), { encoding: CHARSET }, (error) => {
|
||||
if (error) {
|
||||
|
|
|
@ -17,29 +17,46 @@
|
|||
"Teal": "#80CBC4",
|
||||
"Yellow": "#FFA000"
|
||||
},
|
||||
"accentableIcons": [
|
||||
"_folder_open",
|
||||
"_folder_open_build",
|
||||
"_folder_vscode_open"
|
||||
],
|
||||
"changelog": {
|
||||
"lastversion": "1.0.5"
|
||||
},
|
||||
"icons": {
|
||||
"theme": {
|
||||
"iconDefinitions": {
|
||||
"_folder_dark": {
|
||||
"iconPath": "../icons/folder.svg"
|
||||
"_folder_vscode": {
|
||||
"iconPath": "../icons/folder_vscode.svg"
|
||||
},
|
||||
"_file_folder": {
|
||||
"iconPath": "../icons/folder.svg"
|
||||
"_folder_vscode_open": {
|
||||
"iconPath": "../icons/folder_vscode_open.svg"
|
||||
},
|
||||
"_folder_dark": {
|
||||
"iconPath": "../icons/folder_dark.svg"
|
||||
},
|
||||
"_folder_dark_build": {
|
||||
"iconPath": "../icons/folder-build.svg"
|
||||
"iconPath": "../icons/folder_dark_build.svg"
|
||||
},
|
||||
"_file_folder-build": {
|
||||
"iconPath": "../icons/folder-build.svg"
|
||||
"_folder_light": {
|
||||
"iconPath": "../icons/folder_light.svg"
|
||||
},
|
||||
"_folder_light_build": {
|
||||
"iconPath": "../icons/folder_light_build.svg"
|
||||
},
|
||||
"_file_folder": {
|
||||
"iconPath": "../icons/file_folder.svg"
|
||||
},
|
||||
"_file_folder_build": {
|
||||
"iconPath": "../icons/file_folder_build.svg"
|
||||
},
|
||||
"_folder_open": {
|
||||
"iconPath": "../icons/folder-outline.svg"
|
||||
"iconPath": "../icons/folder_open.svg"
|
||||
},
|
||||
"_folder_open_build": {
|
||||
"iconPath": "../icons/folder-outline-build.svg"
|
||||
"iconPath": "../icons/folder_open_build.svg"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -73,5 +90,12 @@
|
|||
"Light High Contrast": "vs",
|
||||
"Palenight": "vs-dark",
|
||||
"Palenight High Contrast": "vs-dark"
|
||||
}
|
||||
},
|
||||
"variantsIcons": [
|
||||
"_folder_dark_build",
|
||||
"_folder_dark",
|
||||
"_folder_light_build",
|
||||
"_folder_light",
|
||||
"_folder_vscode"
|
||||
]
|
||||
}
|
|
@ -8,6 +8,16 @@ import { IDefaults } from "../interfaces/idefaults";
|
|||
import { IThemeIcons } from "../interfaces/itheme-icons";
|
||||
import { PATHS } from "../consts/paths";
|
||||
|
||||
/**
|
||||
* @export
|
||||
* @param {string} dirname
|
||||
*/
|
||||
export function ensureDir(dirname: string): void {
|
||||
if (!fs.existsSync(dirname)) {
|
||||
fs.mkdirSync(dirname);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets default value
|
||||
* @export
|
||||
|
@ -34,6 +44,22 @@ export function getAbsolutePath(input: string): string {
|
|||
return path.join(PATHS.VSIX_DIR, input);
|
||||
}
|
||||
|
||||
/**
|
||||
* @export
|
||||
* @returns {string[]}
|
||||
*/
|
||||
export function getAccentableIcons(): string[] {
|
||||
return getDefaultValues().accentableIcons;
|
||||
}
|
||||
|
||||
/**
|
||||
* @export
|
||||
* @returns {string[]}
|
||||
*/
|
||||
export function getVariantIcons(): string[] {
|
||||
return getDefaultValues().variantsIcons;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a theme content by a given contribute ID
|
||||
*
|
||||
|
|
|
@ -2,7 +2,7 @@ import * as vscode from 'vscode';
|
|||
|
||||
import { IDefaults } from "../interfaces/idefaults";
|
||||
import { IThemeCustomProperties } from "../interfaces/itheme-custom-properties";
|
||||
import { getPackageJSON } from "./fs";
|
||||
import {getPackageJSON} from './fs';
|
||||
|
||||
/**
|
||||
* Gets saved accent
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
export interface IDefaults {
|
||||
accents: IAccents;
|
||||
accentableIcons: string[];
|
||||
changelog: IChangelog;
|
||||
icons: IDefaultsThemeIcons;
|
||||
themeVariants: IDefaultsThemeVariant;
|
||||
themeVariantsColours: IDefaultsThemeVariantColours;
|
||||
themeVariantsUITheme: IDefaultsThemeVariantUITheme;
|
||||
variantsIcons: string[];
|
||||
}
|
||||
|
||||
export interface IAccents {
|
||||
|
@ -31,10 +33,10 @@ export interface IDefaultsThemeIcons {
|
|||
_folder_dark_build: {
|
||||
iconPath: string;
|
||||
}
|
||||
"_file_folder-build": {
|
||||
"_folder_light_build": {
|
||||
iconPath: string;
|
||||
}
|
||||
_file_folder: {
|
||||
_folder_light: {
|
||||
iconPath: string;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ export interface IThemeIcons {
|
|||
"iconDefinitions":
|
||||
{
|
||||
"_folder_dark": IThemeIconsIconPath;
|
||||
"_file_folder": IThemeIconsIconPath;
|
||||
"_folder_dark_build": IThemeIconsIconPath;
|
||||
"_folder_light": IThemeIconsIconPath;
|
||||
"_folder_light_build": IThemeIconsIconPath;
|
||||
|
@ -51,7 +52,6 @@ export interface IThemeIcons {
|
|||
"_file_folder-light": IThemeIconsIconPath;
|
||||
"_file_folder-outline-build": IThemeIconsIconPath;
|
||||
"_file_folder-outline": IThemeIconsIconPath;
|
||||
"_file_folder": IThemeIconsIconPath;
|
||||
"_file_font": IThemeIconsIconPath;
|
||||
"_file_fsharp": IThemeIconsIconPath;
|
||||
"_file_git": IThemeIconsIconPath;
|
||||
|
|
2314
package-lock.json
generated
254
package.json
|
@ -1,129 +1,129 @@
|
|||
{
|
||||
"name": "vsc-material-theme",
|
||||
"displayName": "Material Theme",
|
||||
"description": "The most epic theme now for Visual Studio Code",
|
||||
"version": "1.0.5",
|
||||
"publisher": "Equinusocio",
|
||||
"license": "Apache-2.0",
|
||||
"icon": "logo.png",
|
||||
"galleryBanner": {
|
||||
"color": "#263238",
|
||||
"theme": "dark"
|
||||
},
|
||||
"homepage": "https://github.com/equinusocio/vsc-material-theme",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/equinusocio/vsc-material-theme.git"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/equinusocio/vsc-material-theme/issues"
|
||||
},
|
||||
"engines": {
|
||||
"vscode": "^1.17.0"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "npm run build-icons && npm run build-themes && npm run build-icons-accents && npm run build-icons-variants",
|
||||
"minimize-icons": "svgo -f src/icons/svgs -o icons",
|
||||
"minimize-json": "json-minify themes/.material-theme-icons.tmp > themes/Material-Theme-Icons.json && npm run remove-icons-tmp",
|
||||
"remove-icons": "rimraf icons && rimraf themes/Material-Theme-Icons.json",
|
||||
"remove-icons-tmp": "rimraf themes/.material-theme-icons.tmp",
|
||||
"build-icons": "npm run remove-icons && npm run minimize-icons && gulp build:icons && npm run minimize-json",
|
||||
"build-icons-accents": "gulp build:icons.accents",
|
||||
"build-icons-variants": "gulp build:icons.variants",
|
||||
"build-themes": "gulp build:themes",
|
||||
"release": "npm run bump && npm run changelog",
|
||||
"postinstall": "node ./node_modules/vscode/bin/install",
|
||||
"changelog": "gulp changelog",
|
||||
"bump": "gulp bump"
|
||||
},
|
||||
"categories": [
|
||||
"Themes",
|
||||
"Other"
|
||||
],
|
||||
"activationEvents": [
|
||||
"*"
|
||||
],
|
||||
"main": "./extensions/material.theme.config",
|
||||
"contributes": {
|
||||
"commands": [
|
||||
{
|
||||
"category": "Material theme",
|
||||
"command": "material.theme.config",
|
||||
"title": "Settings"
|
||||
}
|
||||
],
|
||||
"configuration": {
|
||||
"properties": {
|
||||
"materialTheme.cache.workbench.accent": {
|
||||
"type": "string",
|
||||
"title": "[DEPRECATED] This is an old property.",
|
||||
"description": "This property is intended only for migrating old settings system to a new one. It will be removed in new versions. Don't use it, use \"materialTheme.cache.workbench.settings\" instead."
|
||||
},
|
||||
"materialTheme.cache.workbench.settings": {
|
||||
"default": {},
|
||||
"type": "object",
|
||||
"title": "Custom material theme settings",
|
||||
"description": "Material theme settings object."
|
||||
}
|
||||
}
|
||||
},
|
||||
"themes": [
|
||||
{
|
||||
"label": "Material Theme",
|
||||
"path": "./themes/Material-Theme-Default.json",
|
||||
"uiTheme": "vs-dark"
|
||||
}
|
||||
],
|
||||
"iconThemes": [
|
||||
{
|
||||
"id": "eq-material-theme-icons",
|
||||
"label": "Material Theme Icons",
|
||||
"path": "./themes/Material-Theme-Icons.json"
|
||||
}
|
||||
]
|
||||
},
|
||||
"badges": [
|
||||
{
|
||||
"url": "https://camo.githubusercontent.com/d3c6e53aa66426dead24cdedab0e83082103bea6/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f657175696e75736f63696f2f7673632d6d6174657269616c2d7468656d652e7376673f7374796c653d666c61742d737175617265",
|
||||
"href": "https://github.com/equinusocio/vsc-material-theme/issues",
|
||||
"description": "Open issues"
|
||||
}
|
||||
],
|
||||
"devDependencies": {
|
||||
"@types/chalk": "0.4.31",
|
||||
"@types/gulp": "4.0.4",
|
||||
"@types/gulp-if": "0.0.31",
|
||||
"@types/gulp-util": "3.0.31",
|
||||
"@types/mustache": "0.8.29",
|
||||
"@types/run-sequence": "0.0.29",
|
||||
"@types/through2": "2.0.33",
|
||||
"@types/yamljs": "0.2.30",
|
||||
"@types/yargs": "6.6.0",
|
||||
"babel-core": "6.25.0",
|
||||
"babel-preset-es2015": "6.24.1",
|
||||
"babel-root-import": "4.1.8",
|
||||
"cpx": "1.5.0",
|
||||
"eslint": "4.1.1",
|
||||
"eslint-plugin-standard": "3.0.1",
|
||||
"gulp": "3.9.1",
|
||||
"gulp-bump": "2.7.0",
|
||||
"gulp-conventional-changelog": "1.1.3",
|
||||
"gulp-if": "2.0.2",
|
||||
"gulp-stats": "0.0.4",
|
||||
"gulp-util": "3.0.8",
|
||||
"json-minify": "1.0.0",
|
||||
"mustache": "2.3.0",
|
||||
"rimraf": "2.6.1",
|
||||
"run-sequence": "1.2.2",
|
||||
"svgo": "0.7.1",
|
||||
"typescript": "2.4.1",
|
||||
"vscode": "1.1.1",
|
||||
"yamljs": "0.3.0",
|
||||
"yargs": "8.0.2"
|
||||
},
|
||||
"__metadata": {
|
||||
"id": "dffaf5a1-2219-434b-9d87-cb586fd59260",
|
||||
"publisherDisplayName": "Mattia Astorino",
|
||||
"publisherId": "e41388a1-a892-4c1e-940b-1e7c1bf43c97"
|
||||
}
|
||||
"name": "vsc-material-theme",
|
||||
"displayName": "Material Theme",
|
||||
"description": "The most epic theme now for Visual Studio Code",
|
||||
"version": "1.0.5",
|
||||
"publisher": "Equinusocio",
|
||||
"license": "Apache-2.0",
|
||||
"icon": "logo.png",
|
||||
"galleryBanner": {
|
||||
"color": "#263238",
|
||||
"theme": "dark"
|
||||
},
|
||||
"homepage": "https://github.com/equinusocio/vsc-material-theme",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/equinusocio/vsc-material-theme.git"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/equinusocio/vsc-material-theme/issues"
|
||||
},
|
||||
"engines": {
|
||||
"vscode": "^1.17.0"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "npm run build-icons && npm run build-themes && npm run build-icons-accents && npm run build-icons-variants",
|
||||
"minimize-icons": "svgo -f src/icons/svgs -o icons",
|
||||
"minimize-json": "json-minify themes/.material-theme-icons.tmp > themes/Material-Theme-Icons.json && npm run remove-icons-tmp",
|
||||
"remove-icons": "rimraf icons && rimraf themes/Material-Theme-Icons.json",
|
||||
"remove-icons-tmp": "rimraf themes/.material-theme-icons.tmp",
|
||||
"build-icons": "npm run remove-icons && npm run minimize-icons && gulp build:icons && npm run minimize-json",
|
||||
"build-icons-accents": "gulp build:icons.accents",
|
||||
"build-icons-variants": "gulp build:icons.variants",
|
||||
"build-themes": "gulp build:themes",
|
||||
"release": "npm run bump && npm run changelog",
|
||||
"postinstall": "node ./node_modules/vscode/bin/install",
|
||||
"changelog": "gulp changelog",
|
||||
"bump": "gulp bump"
|
||||
},
|
||||
"categories": [
|
||||
"Themes",
|
||||
"Other"
|
||||
],
|
||||
"activationEvents": [
|
||||
"*"
|
||||
],
|
||||
"main": "./extensions/material.theme.config",
|
||||
"contributes": {
|
||||
"commands": [
|
||||
{
|
||||
"category": "Material theme",
|
||||
"command": "material.theme.config",
|
||||
"title": "Settings"
|
||||
}
|
||||
],
|
||||
"configuration": {
|
||||
"properties": {
|
||||
"materialTheme.cache.workbench.accent": {
|
||||
"type": "string",
|
||||
"title": "[DEPRECATED] This is an old property.",
|
||||
"description": "This property is intended only for migrating old settings system to a new one. It will be removed in new versions. Don't use it, use \"materialTheme.cache.workbench.settings\" instead."
|
||||
},
|
||||
"materialTheme.cache.workbench.settings": {
|
||||
"default": {},
|
||||
"type": "object",
|
||||
"title": "Custom material theme settings",
|
||||
"description": "Material theme settings object."
|
||||
}
|
||||
}
|
||||
},
|
||||
"themes": [
|
||||
{
|
||||
"label": "Material Theme",
|
||||
"path": "./themes/Material-Theme-Darker.json",
|
||||
"uiTheme": "vs-dark"
|
||||
}
|
||||
],
|
||||
"iconThemes": [
|
||||
{
|
||||
"id": "eq-material-theme-icons",
|
||||
"label": "Material Theme Icons",
|
||||
"path": "./themes/Material-Theme-Icons.json"
|
||||
}
|
||||
]
|
||||
},
|
||||
"badges": [
|
||||
{
|
||||
"url": "https://camo.githubusercontent.com/d3c6e53aa66426dead24cdedab0e83082103bea6/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f657175696e75736f63696f2f7673632d6d6174657269616c2d7468656d652e7376673f7374796c653d666c61742d737175617265",
|
||||
"href": "https://github.com/equinusocio/vsc-material-theme/issues",
|
||||
"description": "Open issues"
|
||||
}
|
||||
],
|
||||
"devDependencies": {
|
||||
"@types/chalk": "0.4.31",
|
||||
"@types/gulp": "4.0.4",
|
||||
"@types/gulp-if": "0.0.31",
|
||||
"@types/gulp-util": "3.0.31",
|
||||
"@types/mustache": "0.8.29",
|
||||
"@types/run-sequence": "0.0.29",
|
||||
"@types/through2": "2.0.33",
|
||||
"@types/yamljs": "0.2.30",
|
||||
"@types/yargs": "6.6.0",
|
||||
"babel-core": "6.25.0",
|
||||
"babel-preset-es2015": "6.24.1",
|
||||
"babel-root-import": "4.1.8",
|
||||
"cpx": "1.5.0",
|
||||
"eslint": "4.1.1",
|
||||
"eslint-plugin-standard": "3.0.1",
|
||||
"gulp": "3.9.1",
|
||||
"gulp-bump": "2.7.0",
|
||||
"gulp-conventional-changelog": "1.1.3",
|
||||
"gulp-if": "2.0.2",
|
||||
"gulp-stats": "0.0.4",
|
||||
"gulp-util": "3.0.8",
|
||||
"json-minify": "1.0.0",
|
||||
"mustache": "2.3.0",
|
||||
"rimraf": "2.6.1",
|
||||
"run-sequence": "1.2.2",
|
||||
"svgo": "0.7.1",
|
||||
"typescript": "2.4.1",
|
||||
"vscode": "1.1.1",
|
||||
"yamljs": "0.3.0",
|
||||
"yargs": "8.0.2"
|
||||
},
|
||||
"__metadata": {
|
||||
"id": "dffaf5a1-2219-434b-9d87-cb586fd59260",
|
||||
"publisherDisplayName": "Mattia Astorino",
|
||||
"publisherId": "e41388a1-a892-4c1e-940b-1e7c1bf43c97"
|
||||
}
|
||||
}
|
|
@ -91,14 +91,14 @@
|
|||
"xlsx": "_file_table",
|
||||
"xls": "_file_table",
|
||||
"csv": "_file_table",
|
||||
"vscodeignore": "_file_vs",
|
||||
"vsixmanifest": "_file_vs",
|
||||
"suo": "_file_vs",
|
||||
"sln": "_file_vs",
|
||||
"vscodeignore": "_file_visualstudio",
|
||||
"vsixmanifest": "_file_visualstudio",
|
||||
"suo": "_file_visualstudio",
|
||||
"sln": "_file_visualstudio",
|
||||
"pdb": "_file_database",
|
||||
"cs": "_file_csharp",
|
||||
"csx": "_file_csharp",
|
||||
"csproj": "_file_vs",
|
||||
"csproj": "_file_visualstudio",
|
||||
"zip": "_file_zip",
|
||||
"tar": "_file_zip",
|
||||
"gz": "_file_zip",
|
||||
|
@ -236,7 +236,7 @@
|
|||
"project": "_file_xml",
|
||||
"patch": "_file_git",
|
||||
"dockerfile": "_file_docker",
|
||||
"vb": "_file_vs",
|
||||
"vb": "_file_visualstudio",
|
||||
"lua": "_file_lua",
|
||||
"clj": "_file_clojure",
|
||||
"groovy": "_file_groovy",
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
".git": "_file_git",
|
||||
".github": "_file_github",
|
||||
".gulp": "_file_gulp",
|
||||
".vscode": "_folder_vscode",
|
||||
"bower_components": "_file_bower",
|
||||
"build": "_folder_dark_build",
|
||||
"dist": "_folder_dark_build"
|
||||
|
@ -13,6 +14,7 @@
|
|||
".github": "_file_github",
|
||||
".gulp": "_file_gulp",
|
||||
"bower_components": "_file_bower",
|
||||
".vscode": "_folder_vscode_open",
|
||||
"build": "_folder_open_build",
|
||||
"dist": "_folder_open_build"
|
||||
}
|
|
@ -1,28 +1,7 @@
|
|||
"iconDefinitions": {
|
||||
"_folder_dark": {
|
||||
"iconPath": "../icons/folder.svg"
|
||||
},
|
||||
"_folder_dark_build": {
|
||||
"iconPath": "../icons/folder-build.svg"
|
||||
},
|
||||
"_folder_light": {
|
||||
"iconPath": "../icons/folder-light.svg"
|
||||
},
|
||||
"_folder_light_build": {
|
||||
"iconPath": "../icons/folder-light-build.svg"
|
||||
},
|
||||
"_folder_open": {
|
||||
"iconPath": "../icons/folder-outline.svg"
|
||||
},
|
||||
"_folder_open_build": {
|
||||
"iconPath": "../icons/folder-outline-build.svg"
|
||||
},
|
||||
"_file_dark": {
|
||||
"iconPath": "../icons/file.svg"
|
||||
},
|
||||
{{#icons}}
|
||||
"_file_{{name}}": {
|
||||
"iconPath": "../icons/{{name}}.svg"
|
||||
"{{name}}": {
|
||||
"iconPath": "../icons/{{filename}}.svg"
|
||||
}{{^last}},{{/last}}
|
||||
{{/icons}}
|
||||
},
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
".git": "_file_git",
|
||||
".github": "_file_github",
|
||||
".gulp": "_file_gulp",
|
||||
".vscode": "_folder_vscode",
|
||||
"bower_components": "_file_bower",
|
||||
"build": "_folder_light_build",
|
||||
"dist": "_folder_light_build"
|
||||
|
@ -15,8 +16,9 @@
|
|||
".git": "_file_git",
|
||||
".github": "_file_github",
|
||||
".gulp": "_file_gulp",
|
||||
".vscode": "_folder_vscode_open",
|
||||
"bower_components": "_file_bower",
|
||||
"build": "_folder_light_build",
|
||||
"dist": "_folder_light_build"
|
||||
"build": "_folder_open_build",
|
||||
"dist": "_folder_open_build"
|
||||
}
|
||||
},
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 565 B After Width: | Height: | Size: 565 B |
Before Width: | Height: | Size: 835 B After Width: | Height: | Size: 835 B |
Before Width: | Height: | Size: 317 B After Width: | Height: | Size: 317 B |
Before Width: | Height: | Size: 796 B After Width: | Height: | Size: 796 B |
Before Width: | Height: | Size: 350 B After Width: | Height: | Size: 350 B |
Before Width: | Height: | Size: 883 B After Width: | Height: | Size: 883 B |
|
@ -1 +1 @@
|
|||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><defs><style>.st0{fill:#4a616c;}.st1{fill:#ffe0b2;}</style></defs><title>folder_vscode</title><path class="st0" d="M9.8,3,12,5.2h8.8A2.22,2.22,0,0,1,23,7.4V18.6a2.22,2.22,0,0,1-2.2,2.2H3.2a1.94,1.94,0,0,1-2.2-2V5.2A2.22,2.22,0,0,1,3.2,3Z"/><path class="st1" d="M20.87,9.38l-6.42,5.9-3.59-2.7-1.48.86,3.54,3.25L9.37,19.94l1.48.87,3.59-2.7L20.87,24,24,22.48V10.9Zm0,3.88v6.86l-4.55-3.43Z"/></svg>
|
||||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><defs><style>.st0{fill:#4a616c;enable-background:new;}.st1{fill:#ffcb6b;}</style></defs><path class="st0" d="M9.8,3,12,5.2h8.8A2.22,2.22,0,0,1,23,7.4V18.6a2.22,2.22,0,0,1-2.2,2.2H3.2a2,2,0,0,1-2.2-2V5.2A2.22,2.22,0,0,1,3.2,3Z"/><path class="st1" d="M21.08,10.36l-6,5.51-3.35-2.53-1.38.81,3.3,3-3.3,3,1.38.81,3.35-2.52,6,5.5L24,22.58V11.78Zm0,3.62v6.4l-4.25-3.2Z"/></svg>
|
Before Width: | Height: | Size: 487 B After Width: | Height: | Size: 463 B |
|
@ -1 +1 @@
|
|||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><defs><style>.st0{fill:#80cbc4;}.st1{fill:#ffe0b2;}</style></defs><title>folder_vscode_open</title><path class="st0" d="M20.8,5.25H12L9.8,3H3.2A2.23,2.23,0,0,0,1,5.25v13.5A2.23,2.23,0,0,0,3.2,21H20.8A2.23,2.23,0,0,0,23,18.75V7.5A2.23,2.23,0,0,0,20.8,5.25Zm0,13.5H3.2V7.5H20.8Z"/><path class="st1" d="M20.87,9.38l-6.42,5.9-3.59-2.7-1.48.86,3.54,3.25L9.37,19.94l1.48.87,3.59-2.7L20.87,24,24,22.48V10.9Zm0,3.88v6.86l-4.55-3.43Z"/></svg>
|
||||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><defs><style>.st0{fill:#80cbc4;enable-background:new;}.st1{fill:#ffcb6b;}</style></defs><path class="st0" d="M20.8,5.25H12L9.8,3H3.2A2.23,2.23,0,0,0,1,5.25v13.5A2.23,2.23,0,0,0,3.2,21H20.8A2.23,2.23,0,0,0,23,18.75V7.5A2.23,2.23,0,0,0,20.8,5.25Zm0,13.5H3.2V7.5H20.8Z"/><path class="st1" d="M21.08,10.36l-6,5.51-3.35-2.53-1.38.81,3.3,3-3.3,3,1.38.81,3.35-2.52,6,5.5L24,22.58V11.78Zm0,3.62v6.4l-4.25-3.2Z"/></svg>
|
Before Width: | Height: | Size: 526 B After Width: | Height: | Size: 503 B |