From 8e0cd63e5c967566f8e4e777f51715cf673838cc Mon Sep 17 00:00:00 2001 From: jordanbrauer Date: Tue, 4 Oct 2016 10:02:31 -0500 Subject: [PATCH 01/21] Modified .gitignore and package.json. Added a base gulpfile.js. --- .gitignore | 130 ++++++++++++++++++++++++++++++++++++++++++++++++++- gulpfile.js | 24 ++++++++++ package.json | 15 +++++- 3 files changed, 165 insertions(+), 4 deletions(-) create mode 100644 gulpfile.js diff --git a/.gitignore b/.gitignore index 41069ca..0098b2f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,129 @@ -.DS_Store -npm-debug.log +### Custom ### push_instructions.txt +cache +dist +test + +### macOS ### +*.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + + +### Windows ### +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msm +*.msp + +# Windows shortcuts +*.lnk + + +### Sass ### +.sass-cache/ +*.css.map + + +### Linux ### +*~ + +# temporary files which can be created if a process still has a handle open of a deleted file +.fuse_hidden* + +# KDE directory preferences +.directory + +# Linux trash folder which might appear on any partition or disk +.Trash-* + +# .nfs files are created when an open file is removed but is still being accessed +.nfs* + + +### Node ### +# Logs +logs +*.log +npm-debug.log* + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (http://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules +jspm_packages + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + + +### Bower ### +bower_components +.bower-cache +.bower-registry +.bower-tmp diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 0000000..36204a2 --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,24 @@ +// gulpfile.js + +// Dependencies ================================= +var gulp = require('gulp'), // task runner/manager (even tho this is a small project, it's still nice to have) + sass = require('gulp-sass'), // compiles sass for us + notify = require('gulp-notify'), // notifies us when a gulp task is completed through a system notifcation + rename = require('gulp-rename'), // allows us to rename files (adding prefixes and suffixes is the main use here). + autoprefixer = require('gulp-autoprefixer'), // great for catching those annoying vendor prefixes on css attributets and values. + minify = require('cssnano'), // minify our compiled css. sass can do this natively (kind of), so this is used in conjunction with gulp-sass. + merge = require('merge-stream'), // used to merge multiple streams into a single stream for node. + runseq = require('run-sequence'), // runs a sequence of gulp tasks. this is used because gulp.run is deprecated. + del = require('del'); // del is used to cleanup cache and build files. + +// Gulp Tasks =================================== + +// Default task --------------------------------- +// To execute this command use one of the following commands +// from within the project root. +// +// $ gulp +// $ gulp default +gulp.task('default', function() { + // ... +}); diff --git a/package.json b/package.json index 6eb5971..b980248 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,8 @@ }, "contributors": [ "JayGray ", - "ardeay" + "ardeay", + "Jordan Brauer " ], "repository" : { "type": "git", @@ -18,7 +19,17 @@ "keywords": [], "homepage": "http://andrewgioia.com", "dependencies": {}, - "devDependencies": {}, + "devDependencies": { + "gulp": "^3.9.1", + "gulp-autoprefixer": "^3.1.0", + "gulp-sass": "^2.3.2", + "gulp-cssnano": "^2.1.2", + "gulp-notify": "^2.2.0", + "gulp-rename": "^1.2.2", + "merge-stream": "^1.0.0", + "run-sequence": "^1.2.2", + "del": "^2.2.1" + }, "license": "(OFL-1.1 AND MIT)", "main": "css/keyrune.css", "ignore": [ From 9feb5aafed6e424362d974965e9c0f8920c3c6f0 Mon Sep 17 00:00:00 2001 From: jordanbrauer Date: Tue, 4 Oct 2016 11:44:17 -0500 Subject: [PATCH 02/21] Added build, clean, and watch gulp tasks. --- gulpfile.js | 44 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 40 insertions(+), 4 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 36204a2..1c4ade8 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -6,19 +6,55 @@ var gulp = require('gulp'), // task runner/manager (even notify = require('gulp-notify'), // notifies us when a gulp task is completed through a system notifcation rename = require('gulp-rename'), // allows us to rename files (adding prefixes and suffixes is the main use here). autoprefixer = require('gulp-autoprefixer'), // great for catching those annoying vendor prefixes on css attributets and values. - minify = require('cssnano'), // minify our compiled css. sass can do this natively (kind of), so this is used in conjunction with gulp-sass. + minify = require('gulp-cssnano'), // minify our compiled css. sass can do this natively (kind of), so this is used in conjunction with gulp-sass. merge = require('merge-stream'), // used to merge multiple streams into a single stream for node. runseq = require('run-sequence'), // runs a sequence of gulp tasks. this is used because gulp.run is deprecated. del = require('del'); // del is used to cleanup cache and build files. +// Variables ==================================== +// silly, long, reused paths/dirs go here. + // Gulp Tasks =================================== +// Build CSS task ---------------------------- +// Compiles scss into css, +// autoprefix necessary css attributes/values, +// minify prefixed css, +// rename minified file with a '.min' suffix, +// place into ./css directory +// +gulp.task('build', function() { + return gulp.src('./sass/**/*.scss') + .pipe(sass()) + .pipe(gulp.dest('./css')) + .pipe(autoprefixer({ browsers: ['last 2 versions'], cascade: false })) + .pipe(minify()) + .pipe(rename({ suffix: '.min' })) + .pipe(gulp.dest('./css')) + .pipe(notify({ onLast: true, message: 'build task complete' })); +}); + +// Clean task ----------------------------------- +// Ensures that all artifacts/remnants of previous build are gone. +// +// $ gulp clean +gulp.task('clean', function() { + return del(['./css/**/*.*']); +}); + +// Watch task ----------------------------------- +// Great for automating compilation during develpoment. +// +// $ gulp watch +gulp.task('watch', function() { + gulp.watch('./sass/**/*.scss', ['clean', 'build']); +}); + // Default task --------------------------------- +// Runs the watch task as a task dependency by default. // To execute this command use one of the following commands // from within the project root. // // $ gulp // $ gulp default -gulp.task('default', function() { - // ... -}); +gulp.task('default', ['watch']); From fb8dbeed3ddad71979751368719f4022a9f9b345 Mon Sep 17 00:00:00 2001 From: jordanbrauer Date: Tue, 4 Oct 2016 12:03:59 -0500 Subject: [PATCH 03/21] Formatting changes to gulpfile.js. --- gulpfile.js | 69 ++++++++++++++++++++++++++++++++--------------------- 1 file changed, 42 insertions(+), 27 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 1c4ade8..bd9c846 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,28 +1,39 @@ // gulpfile.js -// Dependencies ================================= +/* + * Dependencies ================================= + * | uses/functions of each are provided indiviudally. + */ var gulp = require('gulp'), // task runner/manager (even tho this is a small project, it's still nice to have) sass = require('gulp-sass'), // compiles sass for us notify = require('gulp-notify'), // notifies us when a gulp task is completed through a system notifcation rename = require('gulp-rename'), // allows us to rename files (adding prefixes and suffixes is the main use here). autoprefixer = require('gulp-autoprefixer'), // great for catching those annoying vendor prefixes on css attributets and values. - minify = require('gulp-cssnano'), // minify our compiled css. sass can do this natively (kind of), so this is used in conjunction with gulp-sass. + minify = require('gulp-cssnano'), // minify our compiled css. sass can do this natively (kind of), so this is used in conjunction with gulp-sass. merge = require('merge-stream'), // used to merge multiple streams into a single stream for node. runseq = require('run-sequence'), // runs a sequence of gulp tasks. this is used because gulp.run is deprecated. del = require('del'); // del is used to cleanup cache and build files. -// Variables ==================================== -// silly, long, reused paths/dirs go here. +/* + * Variables ==================================== + * | silly, long, reused paths/dirs go here if needed. + */ -// Gulp Tasks =================================== +/* + * Gulp Tasks =================================== + * | All gulp tasks will be written/explained here. + */ -// Build CSS task ---------------------------- -// Compiles scss into css, -// autoprefix necessary css attributes/values, -// minify prefixed css, -// rename minified file with a '.min' suffix, -// place into ./css directory -// +/* + * Build CSS Task ------------------------------- + * | $ gulp build + * | + * | compiles scss into css, + * | autoprefix necessary css attributes/values, + * | minify prefixed css, + * | rename minified file with a '.min' suffix, + * | place into ./css directory + */ gulp.task('build', function() { return gulp.src('./sass/**/*.scss') .pipe(sass()) @@ -34,27 +45,31 @@ gulp.task('build', function() { .pipe(notify({ onLast: true, message: 'build task complete' })); }); -// Clean task ----------------------------------- -// Ensures that all artifacts/remnants of previous build are gone. -// -// $ gulp clean +/* + * Clean Task ----------------------------------- + * | $ gulp clean + * | + * | Ensures that all artifacts/remnants of previous build are gone. + */ gulp.task('clean', function() { return del(['./css/**/*.*']); }); -// Watch task ----------------------------------- -// Great for automating compilation during develpoment. -// -// $ gulp watch +/* + * Watch Task ----------------------------------- + * | $ gulp watch + * | + * | Great for automating compilation during develpoment. + */ gulp.task('watch', function() { gulp.watch('./sass/**/*.scss', ['clean', 'build']); }); -// Default task --------------------------------- -// Runs the watch task as a task dependency by default. -// To execute this command use one of the following commands -// from within the project root. -// -// $ gulp -// $ gulp default +/* + * Default Task --------------------------------- + * | $ gulp + * | $ gulp default + * | + * | Runs the watch task as a task dependency by default. + */ gulp.task('default', ['watch']); From 81dcaee687bdde7871c023ffe48d14931d9e0bbe Mon Sep 17 00:00:00 2001 From: jordanbrauer Date: Tue, 4 Oct 2016 13:36:54 -0500 Subject: [PATCH 04/21] Fixed a problem with the build task in gulpfile.js that would omit the css @font-face rule. --- gulpfile.js | 51 ++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 36 insertions(+), 15 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index bd9c846..ac0b979 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -9,15 +9,21 @@ var gulp = require('gulp'), // task runner/manager (even notify = require('gulp-notify'), // notifies us when a gulp task is completed through a system notifcation rename = require('gulp-rename'), // allows us to rename files (adding prefixes and suffixes is the main use here). autoprefixer = require('gulp-autoprefixer'), // great for catching those annoying vendor prefixes on css attributets and values. - minify = require('gulp-cssnano'), // minify our compiled css. sass can do this natively (kind of), so this is used in conjunction with gulp-sass. - merge = require('merge-stream'), // used to merge multiple streams into a single stream for node. - runseq = require('run-sequence'), // runs a sequence of gulp tasks. this is used because gulp.run is deprecated. + minify = require('gulp-cssnano'), // minify our compiled css. sass can do this natively (kind of), so this is used in conjunction with gulp-sass. del = require('del'); // del is used to cleanup cache and build files. /* * Variables ==================================== * | silly, long, reused paths/dirs go here if needed. */ +var $supported = [ + 'last 2 versions', + 'safari >= 8', + 'ie >= 10', + 'ff >= 20', + 'ios 6', + 'android 4' +]; /* * Gulp Tasks =================================== @@ -28,21 +34,36 @@ var gulp = require('gulp'), // task runner/manager (even * Build CSS Task ------------------------------- * | $ gulp build * | - * | compiles scss into css, - * | autoprefix necessary css attributes/values, - * | minify prefixed css, - * | rename minified file with a '.min' suffix, - * | place into ./css directory + * | 1. compiles scss into css, + * | 2. autoprefix necessary css attributes/values, + * | 3. place compiled file into ./css directory + * | 4. minify prefixed css, + * | 5. rename minified file with a '.min' suffix, + * | 6. place minified file into ./css directory + * | 7. notify on task completion */ gulp.task('build', function() { return gulp.src('./sass/**/*.scss') - .pipe(sass()) - .pipe(gulp.dest('./css')) - .pipe(autoprefixer({ browsers: ['last 2 versions'], cascade: false })) - .pipe(minify()) - .pipe(rename({ suffix: '.min' })) - .pipe(gulp.dest('./css')) - .pipe(notify({ onLast: true, message: 'build task complete' })); + .pipe(sass({ // 1. + outputStyle: 'expanded' + }).on('error', sass.logError)) + .pipe(autoprefixer({ // 2. + browsers: $supported, + add: true, + cascade: false + })) + .pipe(gulp.dest('./css')) // 3. + .pipe(minify({ // 4. + discardUnused: { fontFace: false } + })) + .pipe(rename({ // 5. + suffix: '.min' + })) + .pipe(gulp.dest('./css')) // 6. + .pipe(notify({ // 7. + onLast: true, + message: 'build task complete!' + })); }); /* From 1028c81401f565b4d74ea4b54c54d7f798a19b6b Mon Sep 17 00:00:00 2001 From: jordanbrauer Date: Tue, 4 Oct 2016 15:10:25 -0500 Subject: [PATCH 05/21] Small one liner inconsequential changes/fixes. --- gulpfile.js | 2 +- index.html | 3 +- package.json | 88 +++++++++++++++++++++++++--------------------------- 3 files changed, 46 insertions(+), 47 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index ac0b979..d14ec63 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -9,7 +9,7 @@ var gulp = require('gulp'), // task runner/manager (even notify = require('gulp-notify'), // notifies us when a gulp task is completed through a system notifcation rename = require('gulp-rename'), // allows us to rename files (adding prefixes and suffixes is the main use here). autoprefixer = require('gulp-autoprefixer'), // great for catching those annoying vendor prefixes on css attributets and values. - minify = require('gulp-cssnano'), // minify our compiled css. sass can do this natively (kind of), so this is used in conjunction with gulp-sass. + minify = require('gulp-cssnano'), // minify our compiled css. sass can do this natively (kind of), so this is used in conjunction with gulp-sass. del = require('del'); // del is used to cleanup cache and build files. /* diff --git a/index.html b/index.html index 782162b..7acd6a7 100644 --- a/index.html +++ b/index.html @@ -2,9 +2,10 @@ - + Keyrune + -

Keyrune

-

Set Symbol Demos

-

+ +

+
+

Keyrune ver 1.7.2_sass

+

Set Symbol Demos

+

This HTML file is for demo purposes and is not necessary for Keyrune installation or use. You can view a few of the set symbol font icons and the available examples below (some may only be available for specific browsers). -

+

+
+
+ + +
+
+

Default Setsymbol, Common (w/out gradient)

+

+   +   +   +   +   +   +

+
+

Default Setsymbol, Common (w/ gradient)

-   -   -   - Common (Legends) -

-

-   -   -   - Uncommon (Onslaught) -

-

-   -   -   - Rare (Future Sight) -

-

-   -   -   - Mythic Rare (Worldwake) +   +   +   +   +   +  

+
+ + +
+
+

Default Setsymbol, Uncommon (w/out gradient)

+

+   +   +   +   +   +   +

+
+
+

Default Setsymbol, Uncommon (w/ gradient)

+

+   +   +   +   +   +   +

+
+
+ + +
+
+

Default Setsymbol, Rare (w/out gradient)

+

+   +   +   +   +   +   +

+
+
+

Default Setsymbol, Rare (w/ gradient)

+

+   +   +   +   +   +   +

+
+
+ + +
+
+

Default Setsymbol, Mythic (w/out gradient)

+

+   +   +   +   +   +   +

+
+
+

Default Setsymbol, Mythic (w/ gradient)

+

+   +   +   +   +   +   +

+
+
+ + + + + +
+
From 7f5b09f07a30e54bd925bab56552d5d363653cc6 Mon Sep 17 00:00:00 2001 From: jordanbrauer Date: Tue, 13 Dec 2016 18:08:32 -0600 Subject: [PATCH 16/21] moved all files under sass/. --- sass/{components => }/_helpers.scss | 0 sass/{components => }/_rarities.scss | 0 sass/{components => }/_setsymbol.scss | 0 sass/{config => }/_settings.scss | 0 sass/{components => }/_typography.scss | 0 sass/{config => }/_variables.scss | 0 sass/keyrune.scss | 12 ++++++------ 7 files changed, 6 insertions(+), 6 deletions(-) rename sass/{components => }/_helpers.scss (100%) rename sass/{components => }/_rarities.scss (100%) rename sass/{components => }/_setsymbol.scss (100%) rename sass/{config => }/_settings.scss (100%) rename sass/{components => }/_typography.scss (100%) rename sass/{config => }/_variables.scss (100%) diff --git a/sass/components/_helpers.scss b/sass/_helpers.scss similarity index 100% rename from sass/components/_helpers.scss rename to sass/_helpers.scss diff --git a/sass/components/_rarities.scss b/sass/_rarities.scss similarity index 100% rename from sass/components/_rarities.scss rename to sass/_rarities.scss diff --git a/sass/components/_setsymbol.scss b/sass/_setsymbol.scss similarity index 100% rename from sass/components/_setsymbol.scss rename to sass/_setsymbol.scss diff --git a/sass/config/_settings.scss b/sass/_settings.scss similarity index 100% rename from sass/config/_settings.scss rename to sass/_settings.scss diff --git a/sass/components/_typography.scss b/sass/_typography.scss similarity index 100% rename from sass/components/_typography.scss rename to sass/_typography.scss diff --git a/sass/config/_variables.scss b/sass/_variables.scss similarity index 100% rename from sass/config/_variables.scss rename to sass/_variables.scss diff --git a/sass/keyrune.scss b/sass/keyrune.scss index ad7f800..069cb19 100644 --- a/sass/keyrune.scss +++ b/sass/keyrune.scss @@ -2,15 +2,15 @@ // Config ====================================== // -@import 'config/variables'; -//@import 'config/settings'; // used for other users to overwrite default styles. +@import 'variables'; +//@import 'settings'; // used for other users to overwrite default styles. // Components ================================== // -@import 'components/typography'; -@import 'components/setsymbol'; -@import 'components/rarities'; +@import 'typography'; +@import 'setsymbol'; +@import 'rarities'; // Helpers ===================================== // -@import 'components/helpers'; +@import 'helpers'; From 968979b5dfdd5147b1f6516ca3c34eb548a4b302 Mon Sep 17 00:00:00 2001 From: jordanbrauer Date: Tue, 13 Dec 2016 21:55:44 -0600 Subject: [PATCH 17/21] Pulled updated less files back into the project. --- less/border.less | 26 +++++ less/core.less | 18 ++++ less/icons.less | 246 ++++++++++++++++++++++++++++++++++++++++++++ less/keyrune.less | 8 ++ less/path.less | 11 ++ less/rarities.less | 62 +++++++++++ less/sizes.less | 8 ++ less/variables.less | 7 ++ less/width.less | 7 ++ 9 files changed, 393 insertions(+) create mode 100644 less/border.less create mode 100644 less/core.less create mode 100644 less/icons.less create mode 100644 less/keyrune.less create mode 100644 less/path.less create mode 100644 less/rarities.less create mode 100644 less/sizes.less create mode 100644 less/variables.less create mode 100644 less/width.less diff --git a/less/border.less b/less/border.less new file mode 100644 index 0000000..0b654bb --- /dev/null +++ b/less/border.less @@ -0,0 +1,26 @@ +.@{ss-prefix}-border { + &:after { + content: ""; + position: absolute; + left: -.05em; + top: .0em; + color: #fff; + font-size: 1.15em; + z-index: -1; + background: #fff; + -webkit-text-stroke: 0.05em #fff; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + } + + &.@{ss-prefix}-van:after { content: "\e655"; } // Vanguard + &.@{ss-prefix}-hop:after { content: "\e656"; } // Planechase 2009 + &.@{ss-prefix}-arc:after { content: "\e657"; } // Archenemy + &.@{ss-prefix}-cmd:after { content: "\e658"; } // Commander + &.@{ss-prefix}-pc2:after { content: "\e659"; } // Planechase 2012 + &.@{ss-prefix}-cm1:after { content: "\e65a"; } // Commander's Arsenal + &.@{ss-prefix}-c13:after { content: "\e65b"; } // Commander 2013 + &.@{ss-prefix}-cns:after { content: "\e65c"; } // Conspiracy + &.@{ss-prefix}-c14:after { content: "\e65d"; } // Commander 2014 + &.@{ss-prefix}-c15:after { content: "\e900"; } // Commander 2015 +} diff --git a/less/core.less b/less/core.less new file mode 100644 index 0000000..10102f0 --- /dev/null +++ b/less/core.less @@ -0,0 +1,18 @@ +.@{ss-prefix} { + display: inline-block; + font: normal normal normal @ss-font-size-base/1 Keyrune; + font-size: inherit; + line-height: 1em; + text-rendering: auto; + transform: translate(0, 0); + speak: none; + text-transform: none; + vertical-align: middle; + // Better font rendering + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + // default if the set does not exist yet, or setcode does not match + &:before { + content: "\e684"; + } +} diff --git a/less/icons.less b/less/icons.less new file mode 100644 index 0000000..0af97e9 --- /dev/null +++ b/less/icons.less @@ -0,0 +1,246 @@ +/** + * Core */ + +.@{ss-prefix}-lea:before { content: "\e600"; } // Alpha +.@{ss-prefix}-leb:before { content: "\e601"; } // Beta +.@{ss-prefix}-2ed:before { content: "\e602"; } // Unlimited +.@{ss-prefix}-3ed:before { content: "\e603"; } // Revised +.@{ss-prefix}-4ed:before { content: "\e604"; } // 4th Edition +.@{ss-prefix}-psum:before { content: "\e605"; } // Summer Magic +.@{ss-prefix}-5ed:before { content: "\e606"; } // 5th Edition +.@{ss-prefix}-6ed:before { content: "\e607"; } // 6th Edition +.@{ss-prefix}-7ed:before { content: "\e608"; } // 7th Edition +.@{ss-prefix}-8ed:before { content: "\e609"; } // 8th Edition +.@{ss-prefix}-9ed:before { content: "\e60a"; } // 9th Edition +.@{ss-prefix}-10e:before { content: "\e60b"; } // 10th Edition +.@{ss-prefix}-m10:before { content: "\e60c"; } // Magic 2010 +.@{ss-prefix}-m11:before { content: "\e60d"; } // Magic 2011 +.@{ss-prefix}-m12:before { content: "\e60e"; } // Magic 2012 +.@{ss-prefix}-m13:before { content: "\e60f"; } // Magic 2013 +.@{ss-prefix}-m14:before { content: "\e610"; } // Magic 2014 +.@{ss-prefix}-m15:before { content: "\e611"; } // Magic 2015 +.@{ss-prefix}-bcore:before { content: "\e612"; } // Core background +.@{ss-prefix}-ori:before { content: "\e697"; } // Magic Origins + +/** + * Expansions */ + +/* Artifact Block */ +.@{ss-prefix}-arn:before { content: "\e613"; } // Arabian Nights +.@{ss-prefix}-atq:before { content: "\e614"; } // Antiquities +.@{ss-prefix}-leg:before { content: "\e615"; } // Legends +/* Wizards Block */ +.@{ss-prefix}-drk:before { content: "\e616"; } // The Dark +.@{ss-prefix}-fem:before { content: "\e617"; } // Fallen Empires +.@{ss-prefix}-hml:before { content: "\e618"; } // Homelands +/* Ice Age Block */ +.@{ss-prefix}-ice:before { content: "\e619"; } // Ice Age +.@{ss-prefix}-all:before { content: "\e61a"; } // Alliances +.@{ss-prefix}-csp:before { content: "\e61b"; } // Coldsnap +/* Mirage Block */ +.@{ss-prefix}-mir:before { content: "\e61c"; } // Mirage +.@{ss-prefix}-vis:before { content: "\e61d"; } // Visions +.@{ss-prefix}-wth:before { content: "\e61e"; } // Weatherlight +/* Tempest Block */ +.@{ss-prefix}-tmp:before { content: "\e61f"; } // Tempest +.@{ss-prefix}-sth:before { content: "\e620"; } // Stronghold +.@{ss-prefix}-exo:before { content: "\e621"; } // Exodus +/* Urza's Block */ +.@{ss-prefix}-usg:before { content: "\e622"; } // Urza's Saga +.@{ss-prefix}-ulg:before { content: "\e623"; } // Urza's Legacy +.@{ss-prefix}-uds:before { content: "\e624"; } // Urza's Destiny +/* Mercadian Block */ +.@{ss-prefix}-mmq:before { content: "\e625"; } // Mercadian Masque +.@{ss-prefix}-nms:before { content: "\e626"; } // Nemesis +.@{ss-prefix}-pcy:before { content: "\e627"; } // Prophecy +/* Invasion Block */ +.@{ss-prefix}-inv:before { content: "\e628"; } // Invasion +.@{ss-prefix}-pls:before { content: "\e629"; } // Planeshift +.@{ss-prefix}-apc:before { content: "\e62a"; } // Apocalypse +/* Odyssey Block */ +.@{ss-prefix}-ody:before { content: "\e62b"; } // Odyssey +.@{ss-prefix}-tor:before { content: "\e62c"; } // Torment +.@{ss-prefix}-jud:before { content: "\e62d"; } // Judgement +/* Onslaught Block */ +.@{ss-prefix}-ons:before { content: "\e62e"; } // Onslaught +.@{ss-prefix}-lgn:before { content: "\e62f"; } // Legions +.@{ss-prefix}-scg:before { content: "\e630"; } // Scourge +/* Mirrodin Block */ +.@{ss-prefix}-mrd:before { content: "\e631"; } // Mirrodin +.@{ss-prefix}-dst:before { content: "\e632"; } // Darksteel +.@{ss-prefix}-5dn:before { content: "\e633"; } // 5th Dawn +/* Kamigawa Block */ +.@{ss-prefix}-chk:before { content: "\e634"; } // Champions of Kamigawa +.@{ss-prefix}-bok:before { content: "\e635"; } // Betrayers of Kamigawa +.@{ss-prefix}-sok:before { content: "\e636"; } // Saviors of Kamigawa +/* Ravnica Block */ +.@{ss-prefix}-rav:before { content: "\e637"; } // Ravnica +.@{ss-prefix}-gpt:before { content: "\e638"; } // Guildpact +.@{ss-prefix}-dis:before { content: "\e639"; } // Dissension +/* Time Spiral Block */ +.@{ss-prefix}-tsp:before { content: "\e63a"; } // Time Spiral +.@{ss-prefix}-plc:before { content: "\e63b"; } // Planeshift +.@{ss-prefix}-fut:before { content: "\e63c"; } // Future Sight +/* Lorwyn Block */ +.@{ss-prefix}-lrw:before { content: "\e63d"; } // Lorwyn +.@{ss-prefix}-mor:before { content: "\e63e"; } // Morningtide +/* Shadowmoor Block */ +.@{ss-prefix}-shm:before { content: "\e63f"; } // Shadowmoor +.@{ss-prefix}-eve:before { content: "\e640"; } // Eventide +/* Alara Block */ +.@{ss-prefix}-ala:before { content: "\e641"; } // Shards of Alara +.@{ss-prefix}-con:before { content: "\e642"; } // Conflux +.@{ss-prefix}-arb:before { content: "\e643"; } // Alara Reborn +/* Zendikar Block */ +.@{ss-prefix}-zen:before { content: "\e644"; } // Zendikar +.@{ss-prefix}-wwk:before { content: "\e645"; } // Worldwake +.@{ss-prefix}-roe:before { content: "\e646"; } // Rise of Eldrazi +/* Scars Block */ +.@{ss-prefix}-som:before { content: "\e647"; } // Scars of Mirrodin +.@{ss-prefix}-mbs:before { content: "\e648"; } // Mirrodin Besieged +.@{ss-prefix}-nph:before { content: "\e649"; } // New Phyrexia +/* Innistrad Block */ +.@{ss-prefix}-isd:before { content: "\e64a"; } // Innistrad +.@{ss-prefix}-dka:before { content: "\e64b"; } // Dark Ascension +.@{ss-prefix}-avr:before { content: "\e64c"; } // Avacyn Restored +/* RTR Block */ +.@{ss-prefix}-rtr:before { content: "\e64d"; } // Return to Ravnica +.@{ss-prefix}-gtc:before { content: "\e64e"; } // Gatecrash +.@{ss-prefix}-dgm:before { content: "\e64f"; } // Dragon's Maze +/* Theros Block */ +.@{ss-prefix}-ths:before { content: "\e650"; } // Theros +.@{ss-prefix}-bng:before { content: "\e651"; } // Born of the Gods +.@{ss-prefix}-jou:before { content: "\e652"; } // Journey into Nyx +/* Khans Block */ +.@{ss-prefix}-ktk:before { content: "\e653"; } // Khans of Tarkir +.@{ss-prefix}-frf:before { content: "\e654"; } // Fate Reforged +.@{ss-prefix}-dtk:before { content: "\e693"; } // Dragons of Tarkir +/* Return to Zendikar Block */ +.@{ss-prefix}-bfz:before { content: "\e699"; } // Battle for Zendikar +.@{ss-prefix}-ogw:before { content: "\e901"; } // Oath of the Gatewatch +/* Return to Innistrad Block */ +.@{ss-prefix}-soi:before { content: "\e902"; } // Shadows Over Innistrad +.@{ss-prefix}-emn:before { content: "\e90b"; } // Eldritch Moon +/* Kaladesh Block */ +.@{ss-prefix}-kld:before { content: "\e90e"; } // Kaladesh +.@{ss-prefix}-aer:before { content: "\e90f"; } // Aether Revolt +/* Amonkhet Block */ +.@{ss-prefix}-akh:before { content: "\e914"; } // Kaladesh + +/** + * Command Zone */ + +.@{ss-prefix}-van:before { content: "\e655"; } // Vanguard +.@{ss-prefix}-hop:before { content: "\e656"; } // Planechase 2009 +.@{ss-prefix}-arc:before { content: "\e657"; } // Archenemy +.@{ss-prefix}-cmd:before { content: "\e658"; } // Commander +.@{ss-prefix}-pc2:before { content: "\e659"; } // Planechase 2012 +.@{ss-prefix}-cm1:before { content: "\e65a"; } // Commander's Arsenal +.@{ss-prefix}-c13:before { content: "\e65b"; } // Commander 2013 +.@{ss-prefix}-cns:before { content: "\e65c"; } // Conspiracy +.@{ss-prefix}-c14:before { content: "\e65d"; } // Commander 2014 +.@{ss-prefix}-c15:before { content: "\e900"; } // Commander 2015 +.@{ss-prefix}-cn2:before { content: "\e904"; } // Conspiracy 2: Take the Crown +.@{ss-prefix}-c16:before { content: "\e910"; } // Commander 2016 +.@{ss-prefix}-pca:before { content: "\e911"; } // Planechase Anthology + +/** + * Reprint */ + +.@{ss-prefix}-chr:before { content: "\e65e"; } // Chronicles +.@{ss-prefix}-ath:before { content: "\e65f"; } // Anthologies +.@{ss-prefix}-brb:before { content: "\e660"; } // Battle Royale +.@{ss-prefix}-btd:before { content: "\e661"; } // Beatdown +.@{ss-prefix}-dkm:before { content: "\e662"; } // Deckmasters +.@{ss-prefix}-mma:before { content: "\e663"; } // Modern Masters +.@{ss-prefix}-mm2:before { content: "\e695"; } // Modern Masters 2015 +.@{ss-prefix}-ema:before { content: "\e903"; } // Eternal Masters +.@{ss-prefix}-mm3:before { content: "\e912"; } // Modern Masters 2017 + +/** + * Beginner */ + +.@{ss-prefix}-por:before { content: "\e664"; } // Portal +.@{ss-prefix}-po2:before { content: "\e665"; } // Portal 2 +.@{ss-prefix}-ptk:before { content: "\e666"; } // Portal 3 Kingdoms +.@{ss-prefix}-s99:before { content: "\e667"; } // Starter 1999 +.@{ss-prefix}-s00:before { content: "\e668"; } // Starter 2000 +.@{ss-prefix}-w16:before { content: "\e907"; } // Welcome Deck 2016 + +/** + * Duel Decks */ + +.@{ss-prefix}-evg:before { content: "\e669"; } // Elves vs. Goblins +.@{ss-prefix}-dd2:before { content: "\e66a"; } // Jace vs. Chandra +.@{ss-prefix}-ddc:before { content: "\e66b"; } // Divine vs. Demonic +.@{ss-prefix}-ddd:before { content: "\e66c"; } // Garruk vs. Liliana +.@{ss-prefix}-dde:before { content: "\e66d"; } // Phyrexia vs. Coalition +.@{ss-prefix}-ddf:before { content: "\e66e"; } // Elspeth vs. Tezzeret +.@{ss-prefix}-ddg:before { content: "\e66f"; } // Knights vs. Dragons +.@{ss-prefix}-ddh:before { content: "\e670"; } // Ajani vs. Nicol Bolas +.@{ss-prefix}-ddi:before { content: "\e671"; } // Venser vs. Koth +.@{ss-prefix}-ddj:before { content: "\e672"; } // Izzet vs. Golgari +.@{ss-prefix}-ddk:before { content: "\e673"; } // Sorin vs. Tibalt +.@{ss-prefix}-ddl:before { content: "\e674"; } // Heroes vs. Monsters +.@{ss-prefix}-ddm:before { content: "\e675"; } // Jace vs. Vraska +.@{ss-prefix}-ddn:before { content: "\e676"; } // Speed vs. Cunning +.@{ss-prefix}-ddo:before { content: "\e677"; } // Kiora vs. Elspeth +.@{ss-prefix}-ddp:before { content: "\e698"; } // Zendikar vs. Eldrazi +.@{ss-prefix}-ddq:before { content: "\e908"; } // Blessed vs. Cursed +.@{ss-prefix}-ddr:before { content: "\e90d"; } // Nissa vs. Ob Nixilis + +/** + * From the Vault */ + +.@{ss-prefix}-drb:before { content: "\e678"; } // Dragons +.@{ss-prefix}-v09:before { content: "\e679"; } // Exiled +.@{ss-prefix}-v10:before { content: "\e67a"; } // Relics +.@{ss-prefix}-v11:before { content: "\e67b"; } // Legends +.@{ss-prefix}-v12:before { content: "\e67c"; } // Realms +.@{ss-prefix}-v13:before { content: "\e67d"; } // Twenty +.@{ss-prefix}-v14:before { content: "\e67e"; } // Annihilation +.@{ss-prefix}-v15:before { content: "\e905"; } // Angels +.@{ss-prefix}-v16:before { content: "\e906"; } // Lore + +/** + * Premium Deck Series */ + +.@{ss-prefix}-h09:before { content: "\e67f"; } // Slivers +.@{ss-prefix}-pd2:before { content: "\e680"; } // Fire & Lightning +.@{ss-prefix}-pd3:before { content: "\e681"; } // Graveborn +.@{ss-prefix}-md1:before { content: "\e682"; } // Modern Event Deck + +/** + * Promotional */ + +.@{ss-prefix}-pgru:before { content: "\e683"; } // Guru +.@{ss-prefix}-pmtg1:before { content: "\e684"; } // Magic symbol +.@{ss-prefix}-pmtg2:before { content: "\e685"; } // Magic symbol (alt) +.@{ss-prefix}-pleaf:before { content: "\e686"; } // Leaf +.@{ss-prefix}-pmei:before { content: "\e687"; } // Media Insert +.@{ss-prefix}-parl:before { content: "\e688"; } // DCI (Arena) +.@{ss-prefix}-dpa:before { content: "\e689"; } // Dragons +.@{ss-prefix}-pbook:before { content: "\e68a"; } // Book Insert +.@{ss-prefix}-past:before { content: "\e68b"; } // Astral +.@{ss-prefix}-parl2:before { content: "\e68c"; } // Arena logo +.@{ss-prefix}-exp:before { content: "\e69a"; } // Zendikar Expeditions +.@{ss-prefix}-psalvat05:before { content: "\e909"; } // Salvat 2005 +.@{ss-prefix}-psalvat11:before { content: "\e90a"; } // Salvat 2011 +.@{ss-prefix}-mp1:before { content: "\e913"; } // Masterpieces: Kaladesh + +/** + * Online */ + +.@{ss-prefix}-med:before { content: "\e68d"; } // Masters Edition +.@{ss-prefix}-me2:before { content: "\e68e"; } // Masters Edition II +.@{ss-prefix}-me3:before { content: "\e68f"; } // Masters Edition III +.@{ss-prefix}-me4:before { content: "\e690"; } // Masters Edition IV +.@{ss-prefix}-tpr:before { content: "\e694"; } // Tempest Remastered +.@{ss-prefix}-vma:before { content: "\e696"; } // Vintage Masters +.@{ss-prefix}-xlcu:before { content: "\e90c"; } // Legendary Cube + +/** + * Un-serious */ + +.@{ss-prefix}-ugl:before { content: "\e691"; } // Unglued +.@{ss-prefix}-unh:before { content: "\e692"; } // Unhinged diff --git a/less/keyrune.less b/less/keyrune.less new file mode 100644 index 0000000..6f86592 --- /dev/null +++ b/less/keyrune.less @@ -0,0 +1,8 @@ +@import "variables.less"; +@import "path.less"; +@import "core.less"; +@import "sizes.less"; +@import "rarities.less"; +@import "width.less"; +@import "icons.less"; +@import "border.less"; diff --git a/less/path.less b/less/path.less new file mode 100644 index 0000000..116f93e --- /dev/null +++ b/less/path.less @@ -0,0 +1,11 @@ +@font-face { + font-family: 'Keyrune'; + src:url( '@{ss-font-path}/keyrune.eot?v=@{ss-version}' ); + src:url( '@{ss-font-path}/keyrune.eot?#iefix&v=@{ss-version}') format( 'embedded-opentype' ), + url( '@{ss-font-path}/keyrune.woff2?v=@{ss-version}') format( 'woff2' ), + url( '@{ss-font-path}/keyrune.woff?v=@{ss-version}') format( 'woff' ), + url( '@{ss-font-path}/keyrune.ttf?v=@{ss-version}') format( 'truetype' ), + url( '@{ss-font-path}/keyrune.svg?v=@{ss-version}#keyrune') format( 'svg' ); + font-weight: normal; + font-style: normal; +} diff --git a/less/rarities.less b/less/rarities.less new file mode 100644 index 0000000..c84d535 --- /dev/null +++ b/less/rarities.less @@ -0,0 +1,62 @@ +/** + * Rarity colors */ + +.@{ss-prefix}-common { + color: #1A1718; + &.@{ss-prefix}-grad { + // webkit outline/gradient + background: -webkit-gradient(linear, left top, right top, color-stop(1%,#302b2c), color-stop(50%,#474040), color-stop(100%,#302b2c)); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(left, #302b2c 1%,#474040 50%,#302b2c 100%); // Chrome10+,Safari5.1+ + -webkit-text-stroke: 0.03em #000; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + &.@{ss-prefix}-no-border { + -webkit-text-stroke: 0; + } + } +} + +.@{ss-prefix}-uncommon { + color: #707883; + &.@{ss-prefix}-grad { + // webkit outline/gradient + background: -webkit-gradient(linear, left top, right top, color-stop(0%,#5a6572), color-stop(50%,#9e9e9e), color-stop(100%,#5a6572)); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(left, #5a6572 0%,#9e9e9e 50%,#5a6572 100%); // Chrome10+,Safari5.1+ + -webkit-text-stroke: 0.03em #111; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + &.@{ss-prefix}-no-border { + -webkit-text-stroke: 0; + } + } +} + +.@{ss-prefix}-rare { + color: #A58E4A; + &.@{ss-prefix}-grad { + // webkit outline/gradient + background: -webkit-gradient(linear, left top, right top, color-stop(0%,#876a3b), color-stop(50%,#dfbd6b), color-stop(100%,#876a3b)); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(left, #876a3b 0%,#dfbd6b 50%,#876a3b 100%); // Chrome10+,Safari5.1+ + -webkit-text-stroke: 0.03em #333; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + &.@{ss-prefix}-no-border { + -webkit-text-stroke: 0; + } + } +} + +.@{ss-prefix}-mythic { + color: #BF4427; + &.@{ss-prefix}-grad { + // webkit outline/gradient + background: -webkit-gradient(linear, left top, right top, color-stop(0%,#b21f0f), color-stop(50%,#f38300), color-stop(100%,#b21f0f)); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(left, #b21f0f 0%,#f38300 50%,#b21f0f 100%); // Chrome10+,Safari5.1+ + -webkit-text-stroke: 0.03em #333; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + &.@{ss-prefix}-no-border { + -webkit-text-stroke: 0; + } + } +} diff --git a/less/sizes.less b/less/sizes.less new file mode 100644 index 0000000..ee926c6 --- /dev/null +++ b/less/sizes.less @@ -0,0 +1,8 @@ +/** + * Larger sizes */ + +.@{ss-prefix}-2x { font-size: 2em; } +.@{ss-prefix}-3x { font-size: 3em; } +.@{ss-prefix}-4x { font-size: 4em; } +.@{ss-prefix}-5x { font-size: 5em; } +.@{ss-prefix}-6x { font-size: 6em; } diff --git a/less/variables.less b/less/variables.less new file mode 100644 index 0000000..daa9d5d --- /dev/null +++ b/less/variables.less @@ -0,0 +1,7 @@ +/** + * Global */ + +@ss-font-path: '../fonts'; +@ss-version: '1.8.0'; +@ss-font-size-base: 14px; +@ss-prefix: ss; diff --git a/less/width.less b/less/width.less new file mode 100644 index 0000000..d2bdc3a --- /dev/null +++ b/less/width.less @@ -0,0 +1,7 @@ +/** + * Fixed width */ + +.@{ss-prefix}-fw { + width: (18em / 14); + text-align: center; +} From 1b1858a7c7aa789ae5df8d5cd3d4378188d4b413 Mon Sep 17 00:00:00 2001 From: jordanbrauer Date: Tue, 13 Dec 2016 21:58:10 -0600 Subject: [PATCH 18/21] Pulled in updates and removed gulpfile. --- .gitignore | 131 +------------------------------------ README.md | 61 ++++++++---------- bower.json | 2 +- gulpfile.js | 124 ----------------------------------- index.html | 182 +++++++++------------------------------------------- 5 files changed, 62 insertions(+), 438 deletions(-) delete mode 100644 gulpfile.js diff --git a/.gitignore b/.gitignore index 0098b2f..a667f57 100644 --- a/.gitignore +++ b/.gitignore @@ -1,129 +1,4 @@ -### Custom ### +.DS_Store +node_modules/ +npm-debug.log push_instructions.txt -cache -dist -test - -### macOS ### -*.DS_Store -.AppleDouble -.LSOverride - -# Icon must end with two \r -Icon - - -# Thumbnails -._* - -# Files that might appear in the root of a volume -.DocumentRevisions-V100 -.fseventsd -.Spotlight-V100 -.TemporaryItems -.Trashes -.VolumeIcon.icns -.com.apple.timemachine.donotpresent - -# Directories potentially created on remote AFP share -.AppleDB -.AppleDesktop -Network Trash Folder -Temporary Items -.apdisk - - -### Windows ### -# Windows image file caches -Thumbs.db -ehthumbs.db - -# Folder config file -Desktop.ini - -# Recycle Bin used on file shares -$RECYCLE.BIN/ - -# Windows Installer files -*.cab -*.msi -*.msm -*.msp - -# Windows shortcuts -*.lnk - - -### Sass ### -.sass-cache/ -*.css.map - - -### Linux ### -*~ - -# temporary files which can be created if a process still has a handle open of a deleted file -.fuse_hidden* - -# KDE directory preferences -.directory - -# Linux trash folder which might appear on any partition or disk -.Trash-* - -# .nfs files are created when an open file is removed but is still being accessed -.nfs* - - -### Node ### -# Logs -logs -*.log -npm-debug.log* - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (http://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules -jspm_packages - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - - -### Bower ### -bower_components -.bower-cache -.bower-registry -.bower-tmp diff --git a/README.md b/README.md index f5b3cfc..a587070 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,4 @@ -# Keyrune v1.7.2 - -__Note:__ - -This is the SASS (`.scss`) version of Keyrune. If you are looking for the LESS version, please got to the [master branch](https://github.com/andrewgioia/Keyrune/tree/master). +# Keyrune v1.8.0 ## The Magic: the Gathering set symbol font! @@ -38,38 +34,35 @@ Attribution is **greatly appreciated** but not required! ## Changelog -* v0.1 - initial font creation and CSS/LESS files for all sets up to Fate Reforged -* v0.2 - all fonts are fluid width now so they will scale correctly without scaled padding; fixed width class added -* v1.0 - public launch via /r/magicTCG! added Dragons of Tarkir (DTK) -* v1.0.1 - Tempest Remastered added (non major set version) -* v1.0.2 - Modern Masters 2015 added -* v1.1.0 - Woff2 support added; Vintage Masters icon added -* v1.2.0 - Cheatsheet added to documentation site; variables changed in LESS files to be Keyrune specific -* v1.3.0 - Magic Origins icon added -* v1.3.1 - Duel Decks: Zendikar v. Eldrazi added -* v1.4.0 - Battle for Zendikar added -* v1.4.1 - Zendikar Expeditions added -* v1.4.2 - Commander 2015 added -* v1.4.3 - Beginning of white border add-on with .ss-border class; renamed font to Keyrune for desktop -* v1.5.0 - Oath of the Gatewatch and Shadows Over Innistrad added -* v1.5.1 - Eternal Masters added -* v1.5.2 - Conspiracy 2: Take the Crown added -* v1.5.3 - FTV: Angels and FTV: Lore -* v1.5.4 - Welcome Deck 2016 -* v1.5.5 - Duel Deck: Blessed vs. Cursed added -* v1.5.6 - Added forgotten Salvat 2005 and 2011 (inserts into MTG Encyclopedias) -* v1.6.0 - Eldritch Moon icon added (based on low-res WOTC graphic) -* v1.6.1 - Updated EMN with the official high-res source image -* v1.6.2 - Added Legendary Cube icon; unfortunately there's no official set code -* v1.7.0 - Lots of new sets! Kaladesh, Aether Revolt, Modern Masters 2017, Plancechase Anthology, Commander 2016, and Duel Decks: Nissa v. Ob Nixilis added -* v1.7.1 - Cleaned up icon files to remove any with multiple paths; fixed UNH icon +* v1.8.0 - Amonkhet icon added; re-organized Readme with new updates at top * v1.7.2 - Added Kaladesh Inventions icon (labeled as MP1) +* v1.7.1 - Cleaned up icon files to remove any with multiple paths; fixed UNH icon +* v1.7.0 - Lots of new sets! Kaladesh, Aether Revolt, Modern Masters 2017, Planechase Anthology, Commander 2016, and Duel Decks: Nissa v. Ob Nixilis added +* v1.6.2 - Added Legendary Cube icon; unfortunately there's no official set code +* v1.6.1 - Updated EMN with the official high-res source image +* v1.6.0 - Eldritch Moon icon added (based on low-res WOTC graphic) +* v1.5.6 - Added forgotten Salvat 2005 and 2011 (inserts into MTG Encyclopedias) +* v1.5.5 - Duel Deck: Blessed vs. Cursed added +* v1.5.4 - Welcome Deck 2016 +* v1.5.3 - FTV: Angels and FTV: Lore +* v1.5.2 - Conspiracy 2: Take the Crown added +* v1.5.1 - Eternal Masters added +* v1.5.0 - Oath of the Gatewatch and Shadows Over Innistrad added +* v1.4.3 - Beginning of white border add-on with .ss-border class; renamed font to Keyrune for desktop +* v1.4.2 - Commander 2015 added +* v1.4.1 - Zendikar Expeditions added +* v1.4.0 - Battle for Zendikar added +* v1.3.1 - Duel Decks: Zendikar v. Eldrazi added +* v1.3.0 - Magic Origins icon added +* v1.2.0 - Cheatsheet added to documentation site; variables changed in LESS files to be Keyrune specific +* v1.1.0 - Woff2 support added; Vintage Masters icon added +* v1.0.2 - Modern Masters 2015 added +* v1.0.1 - Tempest Remastered added (non major set version) +* v1.0.0 - public launch via /r/magicTCG! added Dragons of Tarkir (DTK) +* v0.2.0 - all fonts are fluid width now so they will scale correctly without scaled padding; fixed width class added +* v0.1.0 - initial font creation and CSS/LESS files for all sets up to Fate Reforged ## Todo * New [Coming Soon](http://magic.wizards.com/en/game-info/products/coming-soon) product page has symbols but not the necessary higher res versions * Figure out what the Legendary Cube official set code is; currently using `xLCU` -* Look into tying a universal `.json` (modified version of mtg.json perhaps) file into the project to allow SASS and JavaScript to share variables. - * This will be useful for programmatically generating a complete glossary page (gh-pages) of icons. (similar to other font-package documentation pages [font-awesome, glyph-icons, google-md, etc]). -* Add a changelog generator to the project(?), reducing the amount of maintenance required to add new sets/features. :) -* Integrate with Mana symbol font project(?) into a singular MtG font package (LESS, and SASS versions). diff --git a/bower.json b/bower.json index 9e26338..891d133 100644 --- a/bower.json +++ b/bower.json @@ -1,7 +1,7 @@ { "name": "keyrune", "homepage": "http://andrewgioia.github.io/Keyrune", - "version": "1.7.2", + "version": "1.8.0", "authors": [ "Andrew Gioia " ], diff --git a/gulpfile.js b/gulpfile.js deleted file mode 100644 index f9afa1b..0000000 --- a/gulpfile.js +++ /dev/null @@ -1,124 +0,0 @@ -// gulpfile.js - -/* - * Dependencies ================================= - * | uses/functions of each are provided indiviudally. - */ -var gulp = require('gulp'), // task runner/manager (even tho this is a small project, it's still nice to have) - sass = require('gulp-sass'), // compiles sass for us - notify = require('gulp-notify'), // notifies us when a gulp task is completed through a system notifcation - rename = require('gulp-rename'), // allows us to rename files (adding prefixes and suffixes is the main use here). - autoprefixer = require('gulp-autoprefixer'), // great for catching those annoying vendor prefixes on css attributets and values. - minify = require('gulp-cssnano'), // minify our compiled css. sass can do this natively (kind of), but this is used instead. - del = require('del'), // del is used to cleanup cache and build files. - runseq = require('run-sequence'), // quick and dirty way to run a sequence of tasks AS a task itself. gulp.run is deprecated - merge = require('merge'); // "merge multiple objects into one, optionally creating a new cloned object." -npm repo - -/* - * Variables ==================================== - * | silly, long, reused paths/dirs go here if needed. - */ -var $supported = [ - 'last 2 versions', - 'safari >= 8', - 'ie >= 10', - 'ff >= 20', - 'ios 6', - 'android 4' -]; - -/* - * Gulp Tasks =================================== - * | All gulp tasks will be written/explained here. - */ - -/* - * Build CSS Task ------------------------------- - * | $ gulp build:css - * | - * | 1. compiles scss into css, - * | 2. autoprefix necessary css attributes/values, - * | 3. place compiled file into ./css directory - * | 4. minify prefixed css, - * | 5. rename minified file with a '.min' suffix, - * | 6. place minified file into ./css directory - * | 7. notify on task completion - */ -gulp.task('build:css', function() { - return gulp.src('./sass/**/*.scss') - .pipe(sass({ /* 1. */ - outputStyle: 'expanded' - }).on('error', sass.logError)) - .pipe(autoprefixer({ /* 2. */ - browsers: $supported, - add: true, - cascade: false - })) - .pipe(gulp.dest('./css')) /* 3. */ - .pipe(minify({ /* 4. */ - discardUnused: { fontFace: false } - })) - .pipe(rename({ /* 5. */ - suffix: '.min' - })) - .pipe(gulp.dest('./css')) /* 6. */ - .pipe(notify({ /* 7. */ - onLast: true, - message: 'build task complete!' - })); -}); - -/** Create Config ------------------------------- - * | $ gulp gen:configFile - */ -gulp.task('gen:config', function() { - return gulp.src('./sass/config/_variables.scss') - .pipe(rename('_settings.scss')) - .pipe(gulp.dest('./sass/config')) - .pipe(notify({ - onLast: true, - message: 'generated config file successfully!' - })); -}); - -/** Clean Task ---------------------------------- - * | $ gulp clean - * | - * | Ensures that all artifacts/remnants of previous build are gone. - */ -gulp.task('clean', function() { - var stream1 = del(['./css/**/*.*']); - var stream2 = del(['./sass/config/_settings.scss']); - - return merge(stream1, stream2); -}); - -/** Build Task ------------------------------- - * | $ gulp build - */ -gulp.task('build', function(){ - return runseq( - 'clean', - 'build:css', - 'gen:config' - ); -}); - -/* - * Watch Task ----------------------------------- - * | $ gulp watch - * | - * | Great for automating compilation during develpoment. - */ -gulp.task('watch', function() { - gulp.watch('./sass/**/*.scss', ['build']); -}); - -/* - * Default Task --------------------------------- - * | $ gulp - * | $ gulp default - * | - * | Runs the watch task as a task dependency by default. - */ -gulp.task('default', ['watch']); diff --git a/index.html b/index.html index 3528218..782162b 100644 --- a/index.html +++ b/index.html @@ -2,12 +2,10 @@ - + Keyrune - - - - + + - -
-
-

Keyrune ver 1.7.2_sass

-

Set Symbol Demos

-

+

Keyrune

+

Set Symbol Demos

+

This HTML file is for demo purposes and is not necessary for Keyrune installation or use. You can view a few of the set symbol font icons and the available examples below (some may only be available for specific browsers). -

-
-
- - -
-
-

Default Setsymbol, Common (w/out gradient)

-

-   -   -   -   -   -   -

-
-

Default Setsymbol, Common (w/ gradient)

-

-   -   -   -   -   -  

-
- - -
-
-

Default Setsymbol, Uncommon (w/out gradient)

-

-   -   -   -   -   -   -

-
-
-

Default Setsymbol, Uncommon (w/ gradient)

-

-   -   -   -   -   -   -

-
-
- - -
-
-

Default Setsymbol, Rare (w/out gradient)

-

-   -   -   -   -   -   -

-
-
-

Default Setsymbol, Rare (w/ gradient)

-

-   -   -   -   -   -   -

-
-
- - -
-
-

Default Setsymbol, Mythic (w/out gradient)

-

-   -   -   -   -   -   -

-
-
-

Default Setsymbol, Mythic (w/ gradient)

-

-   -   -   -   -   -   -

-
-
- - - - - -
+

+   +   +   + Common (Legends) +

+

+   +   +   + Uncommon (Onslaught) +

+

+   +   +   + Rare (Future Sight) +

+

+   +   +   + Mythic Rare (Worldwake) +

-
From 0563290998647b9daca9f5196ece848b3a61fb26 Mon Sep 17 00:00:00 2001 From: jordanbrauer Date: Tue, 13 Dec 2016 21:59:13 -0600 Subject: [PATCH 19/21] Pulled in updated font and main css files. --- css/keyrune.css | 1718 +++++++++++++++++-------------------------- css/keyrune.min.css | 2 +- fonts/keyrune.eot | Bin 62740 -> 62980 bytes fonts/keyrune.svg | 1 + fonts/keyrune.ttf | Bin 62576 -> 62816 bytes fonts/keyrune.woff | Bin 62652 -> 62892 bytes fonts/keyrune.woff2 | Bin 36792 -> 36992 bytes 7 files changed, 676 insertions(+), 1045 deletions(-) mode change 100755 => 100644 fonts/keyrune.eot mode change 100755 => 100644 fonts/keyrune.svg mode change 100755 => 100644 fonts/keyrune.ttf mode change 100755 => 100644 fonts/keyrune.woff mode change 100755 => 100644 fonts/keyrune.woff2 diff --git a/css/keyrune.css b/css/keyrune.css index 3f6878c..dc3fe54 100644 --- a/css/keyrune.css +++ b/css/keyrune.css @@ -1,1051 +1,691 @@ -@charset "UTF-8"; -/** Keyrune Font-Family ========================= - * | Concatenation is purely for readability purposes. - * | - * | TODO: Might come back and create a function to fetch font formats from an array. benefit is shorter syntax. - */ +/** + * Global */ @font-face { - font-family: "Keyrune"; - src: url("../fonts/keyrune.eot?v=1.7.2"); - src: url("../fonts/keyrune.eot?#iefix&v=1.7.2") format("embedded-opentype"), url("../fonts/keyrune.woff2?v=1.7.2") format("woff2"), url("../fonts/keyrune.woff?v=1.7.2") format("woff"), url("../fonts/keyrune.ttf?v=1.7.2") format("truetype"), url("../fonts/keyrune.svg?v=1.7.2#keyrune") format("svg"); + font-family: 'Keyrune'; + src: url('../fonts/keyrune.eot?v=1.8.0'); + src: url('../fonts/keyrune.eot?#iefix&v=1.8.0') format('embedded-opentype'), url('../fonts/keyrune.woff2?v=1.8.0') format('woff2'), url('../fonts/keyrune.woff?v=1.8.0') format('woff'), url('../fonts/keyrune.ttf?v=1.8.0') format('truetype'), url('../fonts/keyrune.svg?v=1.8.0#keyrune') format('svg'); font-weight: normal; font-style: normal; } - -/** Setsymbol Base Class ======================== - */ .ss { display: inline-block; - font: normal normal normal 14px "Keyrune"; + font: normal normal normal 14px/1 Keyrune; font-size: inherit; line-height: 1em; text-rendering: auto; - -webkit-transform: translate(0, 0); transform: translate(0, 0); speak: none; text-transform: none; vertical-align: middle; -webkit-font-smoothing: antialiased; - -moz-font-smoothing: grayscale; + -moz-osx-font-smoothing: grayscale; } - .ss:before { - content: ""; + content: "\e684"; } - -/** Setsymbol Glyphs ============================ - * | Originally, this was inside of the .ss class above, - * | and used a '&' parent selector. - * | However, the loop caused a strange - * | interatction and printed all of the the set name comments above all - * | of the set glyh classes; making a giant block of comments on top of - * | a huge list of classes. - * | - * | Temporary solution for proper selector specificity was to prefix the - * | class with the same variable as the main .ss class above. Not really - * | best practice (DRY, etc...) but fixes weird compilation. - */ -/* Alpha */ -.ss.ss-lea:before { - content: ""; -} - -/* Beta */ -.ss.ss-leb:before { - content: ""; -} - -/* Unlimited */ -.ss.ss-2ed:before { - content: ""; -} - -/* Revised */ -.ss.ss-3ed:before { - content: ""; -} - -/* 4th Edition */ -.ss.ss-4ed:before { - content: ""; -} - -/* Summer Magic */ -.ss.ss-psum:before { - content: ""; -} - -/* 5th Edition */ -.ss.ss-5ed:before { - content: ""; -} - -/* 6th Edition */ -.ss.ss-6ed:before { - content: ""; -} - -/* 7th Edition */ -.ss.ss-7ed:before { - content: ""; -} - -/* 8th Edition */ -.ss.ss-8ed:before { - content: ""; -} - -/* 9th Edition */ -.ss.ss-9ed:before { - content: ""; -} - -/* 10th Edition */ -.ss.ss-10e:before { - content: ""; -} - -/* Magic 2010 */ -.ss.ss-m10:before { - content: ""; -} - -/* Magic 2011 */ -.ss.ss-m11:before { - content: ""; -} - -/* Magic 2012 */ -.ss.ss-m12:before { - content: ""; -} - -/* Magic 2013 */ -.ss.ss-m13:before { - content: ""; -} - -/* Magic 2014 */ -.ss.ss-m14:before { - content: ""; -} - -/* Magic 2015 */ -.ss.ss-m15:before { - content: ""; -} - -/* Core background */ -.ss.ss-bcore:before { - content: ""; -} - -/* Magic Origins */ -.ss.ss-ori:before { - content: ""; -} - -/* Arabian Nights */ -.ss.ss-arn:before { - content: ""; -} - -/* Antiquities */ -.ss.ss-atq:before { - content: ""; -} - -/* Legends */ -.ss.ss-leg:before { - content: ""; -} - -/* The Dark */ -.ss.ss-drk:before { - content: ""; -} - -/* Fallen Empires */ -.ss.ss-fem:before { - content: ""; -} - -/* Homelands */ -.ss.ss-hml:before { - content: ""; -} - -/* Ice Age */ -.ss.ss-ice:before { - content: ""; -} - -/* Alliances */ -.ss.ss-all:before { - content: ""; -} - -/* Coldsnap */ -.ss.ss-csp:before { - content: ""; -} - -/* Mirage */ -.ss.ss-mir:before { - content: ""; -} - -/* Visions */ -.ss.ss-vis:before { - content: ""; -} - -/* Weatherlight */ -.ss.ss-wth:before { - content: ""; -} - -/* Tempest */ -.ss.ss-tmp:before { - content: ""; -} - -/* Stronghold */ -.ss.ss-sth:before { - content: ""; -} - -/* Exodus */ -.ss.ss-exo:before { - content: ""; -} - -/* Urza's Saga */ -.ss.ss-usg:before { - content: ""; -} - -/* Urza's Legacy */ -.ss.ss-ulg:before { - content: ""; -} - -/* Urza's Destiny */ -.ss.ss-uds:before { - content: ""; -} - -/* Mercadian Masque */ -.ss.ss-mmq:before { - content: ""; -} - -/* Nemesis */ -.ss.ss-nms:before { - content: ""; -} - -/* Prophecy */ -.ss.ss-pcy:before { - content: ""; -} - -/* Invasion */ -.ss.ss-inv:before { - content: ""; -} - -/* Planeshift */ -.ss.ss-pls:before { - content: ""; -} - -/* Apocalypse */ -.ss.ss-apc:before { - content: ""; -} - -/* Odyssey */ -.ss.ss-ody:before { - content: ""; -} - -/* Torment */ -.ss.ss-tor:before { - content: ""; -} - -/* Judgement */ -.ss.ss-jud:before { - content: ""; -} - -/* Onslaught */ -.ss.ss-ons:before { - content: ""; -} - -/* Legions */ -.ss.ss-lgn:before { - content: ""; -} - -/* Scourge */ -.ss.ss-scg:before { - content: ""; -} - -/* Mirrodin */ -.ss.ss-mrd:before { - content: ""; -} - -/* Darksteel */ -.ss.ss-dst:before { - content: ""; -} - -/* 5th Dawn */ -.ss.ss-5dn:before { - content: ""; -} - -/* Champions of */ -.ss.ss-chk:before { - content: ""; -} - -/* Betrayers of */ -.ss.ss-bok:before { - content: ""; -} - -/* Saviors of Kamigawa */ -.ss.ss-sok:before { - content: ""; -} - -/* Ravnica */ -.ss.ss-rav:before { - content: ""; -} - -/* Guildpact */ -.ss.ss-gpt:before { - content: ""; -} - -/* Dissension */ -.ss.ss-dis:before { - content: ""; -} - -/* Time Spiral */ -.ss.ss-tsp:before { - content: ""; -} - -/* Planeshift */ -.ss.ss-plc:before { - content: ""; -} - -/* Future Sight */ -.ss.ss-fut:before { - content: ""; -} - -/* Lorwyn */ -.ss.ss-lrw:before { - content: ""; -} - -/* Morningtide */ -.ss.ss-mor:before { - content: ""; -} - -/* Shadowmoor */ -.ss.ss-shm:before { - content: ""; -} - -/* Eventide */ -.ss.ss-eve:before { - content: ""; -} - -/* Shards of Alara */ -.ss.ss-ala:before { - content: ""; -} - -/* Conflux */ -.ss.ss-con:before { - content: ""; -} - -/* Alara Reborn */ -.ss.ss-arb:before { - content: ""; -} - -/* Zendikar */ -.ss.ss-zen:before { - content: ""; -} - -/* Worldwake */ -.ss.ss-wwk:before { - content: ""; -} - -/* Rise of Eldrazi */ -.ss.ss-roe:before { - content: ""; -} - -/* Scars of Mirrodin */ -.ss.ss-som:before { - content: ""; -} - -/* Mirrodin Besieged */ -.ss.ss-mbs:before { - content: ""; -} - -/* New Phyrexia */ -.ss.ss-nph:before { - content: ""; -} - -/* Innistrad */ -.ss.ss-isd:before { - content: ""; -} - -/* Dark Ascension */ -.ss.ss-dka:before { - content: ""; -} - -/* Avacyn Restored */ -.ss.ss-avr:before { - content: ""; -} - -/* Return to Ravnica */ -.ss.ss-rtr:before { - content: ""; -} - -/* Gatecrash */ -.ss.ss-gtc:before { - content: ""; -} - -/* Dragon's Maze */ -.ss.ss-dgm:before { - content: ""; -} - -/* Theros */ -.ss.ss-ths:before { - content: ""; -} - -/* Born of the Gods */ -.ss.ss-bng:before { - content: ""; -} - -/* Journey into Nyx */ -.ss.ss-jou:before { - content: ""; -} - -/* Khans of Tarkir */ -.ss.ss-ktk:before { - content: ""; -} - -/* Fate Reforged */ -.ss.ss-frf:before { - content: ""; -} - -/* Dragons of Tarkir */ -.ss.ss-dtk:before { - content: ""; -} - -/* Battle for Zendikar */ -.ss.ss-bfz:before { - content: ""; -} - -/* Oath of the */ -.ss.ss-ogw:before { - content: ""; -} - -/* Shadows Over */ -.ss.ss-soi:before { - content: ""; -} - -/* Eldritch Moon */ -.ss.ss-emn:before { - content: ""; -} - -/* Kaladesh */ -.ss.ss-kld:before { - content: ""; -} - -/* Aether Revolt */ -.ss.ss-aer:before { - content: ""; -} - -/* Vanguard */ -.ss.ss-van:before { - content: ""; -} - -/* Planechase 2009 */ -.ss.ss-hop:before { - content: ""; -} - -/* Archenemy */ -.ss.ss-arc:before { - content: ""; -} - -/* Commander */ -.ss.ss-cmd:before { - content: ""; -} - -/* Planechase 2012 */ -.ss.ss-pc2:before { - content: ""; -} - -/* Commander's Arsenal */ -.ss.ss-cm1:before { - content: ""; -} - -/* Commander 2013 */ -.ss.ss-c13:before { - content: ""; -} - -/* Conspiracy */ -.ss.ss-cns:before { - content: ""; -} - -/* Commander 2014 */ -.ss.ss-c14:before { - content: ""; -} - -/* Commander 2015 */ -.ss.ss-c15:before { - content: ""; -} - -/* Conspiracy 2, Take */ -.ss.ss-cn2:before { - content: ""; -} - -/* Commander 2016 */ -.ss.ss-c16:before { - content: ""; -} - -/* Planechase */ -.ss.ss-pca:before { - content: ""; -} - -/* Chronicles */ -.ss.ss-chr:before { - content: ""; -} - -/* Anthologies */ -.ss.ss-ath:before { - content: ""; -} - -/* Battle Royale */ -.ss.ss-brb:before { - content: ""; -} - -/* Beatdown */ -.ss.ss-btd:before { - content: ""; -} - -/* Deckmasters */ -.ss.ss-dkm:before { - content: ""; -} - -/* Modern Masters */ -.ss.ss-mma:before { - content: ""; -} - -/* Modern Masters 2015 */ -.ss.ss-mm2:before { - content: ""; -} - -/* Eternal Masters */ -.ss.ss-ema:before { - content: ""; -} - -/* Modern Masters 2017 */ -.ss.ss-mm3:before { - content: ""; -} - -/* Portal */ -.ss.ss-por:before { - content: ""; -} - -/* Portal 2 */ -.ss.ss-po2:before { - content: ""; -} - -/* Portal 3 Kingdoms */ -.ss.ss-ptk:before { - content: ""; -} - -/* Starter 1999 */ -.ss.ss-s99:before { - content: ""; -} - -/* Starter 2000 */ -.ss.ss-s00:before { - content: ""; -} - -/* Welcome Deck 2016 */ -.ss.ss-w16:before { - content: ""; -} - -/* Elves vs. Goblins */ -.ss.ss-evg:before { - content: ""; -} - -/* Jace vs. Chandra */ -.ss.ss-dd2:before { - content: ""; -} - -/* Divine vs. Demonic */ -.ss.ss-ddc:before { - content: ""; -} - -/* Garruk vs. Liliana */ -.ss.ss-ddd:before { - content: ""; -} - -/* Phyrexia vs. */ -.ss.ss-dde:before { - content: ""; -} - -/* Elspeth vs. */ -.ss.ss-ddf:before { - content: ""; -} - -/* Knights vs. Dragons */ -.ss.ss-ddg:before { - content: ""; -} - -/* Ajani vs. Nicol */ -.ss.ss-ddh:before { - content: ""; -} - -/* Venser vs. Koth */ -.ss.ss-ddi:before { - content: ""; -} - -/* Izzet vs. Golgari */ -.ss.ss-ddj:before { - content: ""; -} - -/* Sorin vs. Tibalt */ -.ss.ss-ddk:before { - content: ""; -} - -/* Heroes vs. Monsters */ -.ss.ss-ddl:before { - content: ""; -} - -/* Jace vs. Vraska */ -.ss.ss-ddm:before { - content: ""; -} - -/* Speed vs. Cunning */ -.ss.ss-ddn:before { - content: ""; -} - -/* Kiora vs. Elspeth */ -.ss.ss-ddo:before { - content: ""; -} - -/* Zendikar vs. */ -.ss.ss-ddp:before { - content: ""; -} - -/* Blessed vs. Cursed */ -.ss.ss-ddq:before { - content: ""; -} - -/* Nissa vs. Ob */ -.ss.ss-ddr:before { - content: ""; -} - -/* Dragons */ -.ss.ss-drb:before { - content: ""; -} - -/* Exiled */ -.ss.ss-v09:before { - content: ""; -} - -/* Relics */ -.ss.ss-v10:before { - content: ""; -} - -/* Legends */ -.ss.ss-v11:before { - content: ""; -} - -/* Realms */ -.ss.ss-v12:before { - content: ""; -} - -/* Twenty */ -.ss.ss-v13:before { - content: ""; -} - -/* Annihilation */ -.ss.ss-v14:before { - content: ""; -} - -/* Angels */ -.ss.ss-v15:before { - content: ""; -} - -/* Lore */ -.ss.ss-v16:before { - content: ""; -} - -/* Slivers */ -.ss.ss-h09:before { - content: ""; -} - -/* Fire & Lightning */ -.ss.ss-pd2:before { - content: ""; -} - -/* Graveborn */ -.ss.ss-pd3:before { - content: ""; -} - -/* Modern Event Deck */ -.ss.ss-md1:before { - content: ""; -} - -/* Guru */ -.ss.ss-pgru:before { - content: ""; -} - -/* Magic symbol */ -.ss.ss-pmtg1:before { - content: ""; -} - -/* Magic symbol */ -.ss.ss-pmtg2:before { - content: ""; -} - -/* Leaf */ -.ss.ss-pleaf:before { - content: ""; -} - -/* Media Insert */ -.ss.ss-pmei:before { - content: ""; -} - -/* DCI (Arena) */ -.ss.ss-parl:before { - content: ""; -} - -/* Dragons */ -.ss.ss-dpa:before { - content: ""; -} - -/* Book Insert */ -.ss.ss-pbook:before { - content: ""; -} - -/* Astral */ -.ss.ss-past:before { - content: ""; -} - -/* Arena logo */ -.ss.ss-parl2:before { - content: ""; -} - -/* Zendikar */ -.ss.ss-exp:before { - content: ""; -} - -/* Salvat 2005 */ -.ss.ss-psalvat05:before { - content: ""; -} - -/* Salvat 2011 */ -.ss.ss-psalvat11:before { - content: ""; -} - -/* Masterpieces, */ -.ss.ss-mp1:before { - content: ""; -} - -/* Masters Edition */ -.ss.ss-med:before { - content: ""; -} - -/* Masters Edition II */ -.ss.ss-me2:before { - content: ""; -} - -/* Masters Edition III */ -.ss.ss-me3:before { - content: ""; -} - -/* Masters Edition IV */ -.ss.ss-me4:before { - content: ""; -} - -/* Tempest Remastered */ -.ss.ss-tpr:before { - content: ""; -} - -/* Vintage Masters */ -.ss.ss-vma:before { - content: ""; -} - -/* Legendary Cube */ -.ss.ss-xlcu:before { - content: ""; -} - -/* Unglued */ -.ss.ss-ugl:before { - content: ""; -} - -/* Unhinged */ -.ss.ss-unh:before { - content: ""; -} - -/** Setsymbol Rarities ========================== - * | Strangely enough, autoprefixer doesn't wanna prefix - * | some of the things in here properly. Either way, I kept those - * | hard-coded prefxed to ensure it to work! - */ -/* common */ -.ss.ss-common { - color: #1a1718; -} - -.ss.ss-common.ss-grad { - /* Chrome, Safari4+ */ - background: -webkit-gradient(linear, left top, right top, color-stop(0%, #302b2c), color-stop(50%, #474040), color-stop(100%, #302b2c)); - /* Chrome10+, Safari5.1+ */ - background: -webkit-linear-gradient(left, #302b2c 0%, #474040 50%, #302b2c 100%); - -webkit-text-stroke: 0.03em #000; - -webkit-text-fill-color: transparent; - -webkit-background-clip: text; - background-clip: text; -} - -/* uncommon */ -.ss.ss-uncommon { - color: #707883; -} - -.ss.ss-uncommon.ss-grad { - /* Chrome, Safari4+ */ - background: -webkit-gradient(linear, left top, right top, color-stop(0%, #5a6572), color-stop(50%, #9e9e9e), color-stop(100%, #5a6572)); - /* Chrome10+, Safari5.1+ */ - background: -webkit-linear-gradient(left, #5a6572 0%, #9e9e9e 50%, #5a6572 100%); - -webkit-text-stroke: 0.03em #111; - -webkit-text-fill-color: transparent; - -webkit-background-clip: text; - background-clip: text; -} - -/* rare */ -.ss.ss-rare { - color: #a58e4a; -} - -.ss.ss-rare.ss-grad { - /* Chrome, Safari4+ */ - background: -webkit-gradient(linear, left top, right top, color-stop(0%, #876a3b), color-stop(50%, #dfbd6b), color-stop(100%, #876a3b)); - /* Chrome10+, Safari5.1+ */ - background: -webkit-linear-gradient(left, #876a3b 0%, #dfbd6b 50%, #876a3b 100%); - -webkit-text-stroke: 0.03em #333; - -webkit-text-fill-color: transparent; - -webkit-background-clip: text; - background-clip: text; -} - -/* mythic */ -.ss.ss-mythic { - color: #bf4427; -} - -.ss.ss-mythic.ss-grad { - /* Chrome, Safari4+ */ - background: -webkit-gradient(linear, left top, right top, color-stop(0%, #b21f0f), color-stop(50%, #f38300), color-stop(100%, #b21f0f)); - /* Chrome10+, Safari5.1+ */ - background: -webkit-linear-gradient(left, #b21f0f 0%, #f38300 50%, #b21f0f 100%); - -webkit-text-stroke: 0.03em #333; - -webkit-text-fill-color: transparent; - -webkit-background-clip: text; - background-clip: text; -} - -/** Setsymbol Size Modifiers ==================== - */ -.ss.ss-2x { +/** + * Larger sizes */ +.ss-2x { font-size: 2em; } - -.ss.ss-3x { +.ss-3x { font-size: 3em; } - -.ss.ss-4x { +.ss-4x { font-size: 4em; } - -.ss.ss-5x { +.ss-5x { font-size: 5em; } - -.ss.ss-6x { +.ss-6x { font-size: 6em; } - -.ss.ss-fw { - width: -webkit-calc(18em / 14px); - width: calc(18em / 14px); +/** + * Rarity colors */ +.ss-common { + color: #1A1718; +} +.ss-common.ss-grad { + background: -webkit-gradient(linear, left top, right top, color-stop(1%, #302b2c), color-stop(50%, #474040), color-stop(100%, #302b2c)); + /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(left, #302b2c 1%, #474040 50%, #302b2c 100%); + -webkit-text-stroke: 0.03em #000; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; +} +.ss-common.ss-grad.ss-no-border { + -webkit-text-stroke: 0; +} +.ss-uncommon { + color: #707883; +} +.ss-uncommon.ss-grad { + background: -webkit-gradient(linear, left top, right top, color-stop(0%, #5a6572), color-stop(50%, #9e9e9e), color-stop(100%, #5a6572)); + /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(left, #5a6572 0%, #9e9e9e 50%, #5a6572 100%); + -webkit-text-stroke: 0.03em #111; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; +} +.ss-uncommon.ss-grad.ss-no-border { + -webkit-text-stroke: 0; +} +.ss-rare { + color: #A58E4A; +} +.ss-rare.ss-grad { + background: -webkit-gradient(linear, left top, right top, color-stop(0%, #876a3b), color-stop(50%, #dfbd6b), color-stop(100%, #876a3b)); + /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(left, #876a3b 0%, #dfbd6b 50%, #876a3b 100%); + -webkit-text-stroke: 0.03em #333; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; +} +.ss-rare.ss-grad.ss-no-border { + -webkit-text-stroke: 0; +} +.ss-mythic { + color: #BF4427; +} +.ss-mythic.ss-grad { + background: -webkit-gradient(linear, left top, right top, color-stop(0%, #b21f0f), color-stop(50%, #f38300), color-stop(100%, #b21f0f)); + /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(left, #b21f0f 0%, #f38300 50%, #b21f0f 100%); + -webkit-text-stroke: 0.03em #333; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; +} +.ss-mythic.ss-grad.ss-no-border { + -webkit-text-stroke: 0; +} +/** + * Fixed width */ +.ss-fw { + width: 1.2857142857142858em; text-align: center; } - -/** Setsymbol No Border ========================= - * | This class can remain a singleton since it is generic, making - * | it a helper class. - */ -.ss.ss-no-border { - -webkit-text-stroke: 0; - text-stroke: 0; +/** + * Core */ +.ss-lea:before { + content: "\e600"; } - -/** Setsymbol Border ============================ - */ -.ss.ss-border { - /* Vanguard */ - /* Archenemy */ - /* Commander */ - /* Commander's Arsenal */ - /* Commander 2013 */ - /* Commander 2014 */ - /* Commander 2015 */ - /* Planechase 2009 */ - /* Planechase 2012 */ - /* Conspiracy */ +.ss-leb:before { + content: "\e601"; } - -.ss.ss-border:after { +.ss-2ed:before { + content: "\e602"; +} +.ss-3ed:before { + content: "\e603"; +} +.ss-4ed:before { + content: "\e604"; +} +.ss-psum:before { + content: "\e605"; +} +.ss-5ed:before { + content: "\e606"; +} +.ss-6ed:before { + content: "\e607"; +} +.ss-7ed:before { + content: "\e608"; +} +.ss-8ed:before { + content: "\e609"; +} +.ss-9ed:before { + content: "\e60a"; +} +.ss-10e:before { + content: "\e60b"; +} +.ss-m10:before { + content: "\e60c"; +} +.ss-m11:before { + content: "\e60d"; +} +.ss-m12:before { + content: "\e60e"; +} +.ss-m13:before { + content: "\e60f"; +} +.ss-m14:before { + content: "\e610"; +} +.ss-m15:before { + content: "\e611"; +} +.ss-bcore:before { + content: "\e612"; +} +.ss-ori:before { + content: "\e697"; +} +/** + * Expansions */ +/* Artifact Block */ +.ss-arn:before { + content: "\e613"; +} +.ss-atq:before { + content: "\e614"; +} +.ss-leg:before { + content: "\e615"; +} +/* Wizards Block */ +.ss-drk:before { + content: "\e616"; +} +.ss-fem:before { + content: "\e617"; +} +.ss-hml:before { + content: "\e618"; +} +/* Ice Age Block */ +.ss-ice:before { + content: "\e619"; +} +.ss-all:before { + content: "\e61a"; +} +.ss-csp:before { + content: "\e61b"; +} +/* Mirage Block */ +.ss-mir:before { + content: "\e61c"; +} +.ss-vis:before { + content: "\e61d"; +} +.ss-wth:before { + content: "\e61e"; +} +/* Tempest Block */ +.ss-tmp:before { + content: "\e61f"; +} +.ss-sth:before { + content: "\e620"; +} +.ss-exo:before { + content: "\e621"; +} +/* Urza's Block */ +.ss-usg:before { + content: "\e622"; +} +.ss-ulg:before { + content: "\e623"; +} +.ss-uds:before { + content: "\e624"; +} +/* Mercadian Block */ +.ss-mmq:before { + content: "\e625"; +} +.ss-nms:before { + content: "\e626"; +} +.ss-pcy:before { + content: "\e627"; +} +/* Invasion Block */ +.ss-inv:before { + content: "\e628"; +} +.ss-pls:before { + content: "\e629"; +} +.ss-apc:before { + content: "\e62a"; +} +/* Odyssey Block */ +.ss-ody:before { + content: "\e62b"; +} +.ss-tor:before { + content: "\e62c"; +} +.ss-jud:before { + content: "\e62d"; +} +/* Onslaught Block */ +.ss-ons:before { + content: "\e62e"; +} +.ss-lgn:before { + content: "\e62f"; +} +.ss-scg:before { + content: "\e630"; +} +/* Mirrodin Block */ +.ss-mrd:before { + content: "\e631"; +} +.ss-dst:before { + content: "\e632"; +} +.ss-5dn:before { + content: "\e633"; +} +/* Kamigawa Block */ +.ss-chk:before { + content: "\e634"; +} +.ss-bok:before { + content: "\e635"; +} +.ss-sok:before { + content: "\e636"; +} +/* Ravnica Block */ +.ss-rav:before { + content: "\e637"; +} +.ss-gpt:before { + content: "\e638"; +} +.ss-dis:before { + content: "\e639"; +} +/* Time Spiral Block */ +.ss-tsp:before { + content: "\e63a"; +} +.ss-plc:before { + content: "\e63b"; +} +.ss-fut:before { + content: "\e63c"; +} +/* Lorwyn Block */ +.ss-lrw:before { + content: "\e63d"; +} +.ss-mor:before { + content: "\e63e"; +} +/* Shadowmoor Block */ +.ss-shm:before { + content: "\e63f"; +} +.ss-eve:before { + content: "\e640"; +} +/* Alara Block */ +.ss-ala:before { + content: "\e641"; +} +.ss-con:before { + content: "\e642"; +} +.ss-arb:before { + content: "\e643"; +} +/* Zendikar Block */ +.ss-zen:before { + content: "\e644"; +} +.ss-wwk:before { + content: "\e645"; +} +.ss-roe:before { + content: "\e646"; +} +/* Scars Block */ +.ss-som:before { + content: "\e647"; +} +.ss-mbs:before { + content: "\e648"; +} +.ss-nph:before { + content: "\e649"; +} +/* Innistrad Block */ +.ss-isd:before { + content: "\e64a"; +} +.ss-dka:before { + content: "\e64b"; +} +.ss-avr:before { + content: "\e64c"; +} +/* RTR Block */ +.ss-rtr:before { + content: "\e64d"; +} +.ss-gtc:before { + content: "\e64e"; +} +.ss-dgm:before { + content: "\e64f"; +} +/* Theros Block */ +.ss-ths:before { + content: "\e650"; +} +.ss-bng:before { + content: "\e651"; +} +.ss-jou:before { + content: "\e652"; +} +/* Khans Block */ +.ss-ktk:before { + content: "\e653"; +} +.ss-frf:before { + content: "\e654"; +} +.ss-dtk:before { + content: "\e693"; +} +/* Return to Zendikar Block */ +.ss-bfz:before { + content: "\e699"; +} +.ss-ogw:before { + content: "\e901"; +} +/* Return to Innistrad Block */ +.ss-soi:before { + content: "\e902"; +} +.ss-emn:before { + content: "\e90b"; +} +/* Kaladesh Block */ +.ss-kld:before { + content: "\e90e"; +} +.ss-aer:before { + content: "\e90f"; +} +/* Amonkhet Block */ +.ss-akh:before { + content: "\e914"; +} +/** + * Command Zone */ +.ss-van:before { + content: "\e655"; +} +.ss-hop:before { + content: "\e656"; +} +.ss-arc:before { + content: "\e657"; +} +.ss-cmd:before { + content: "\e658"; +} +.ss-pc2:before { + content: "\e659"; +} +.ss-cm1:before { + content: "\e65a"; +} +.ss-c13:before { + content: "\e65b"; +} +.ss-cns:before { + content: "\e65c"; +} +.ss-c14:before { + content: "\e65d"; +} +.ss-c15:before { + content: "\e900"; +} +.ss-cn2:before { + content: "\e904"; +} +.ss-c16:before { + content: "\e910"; +} +.ss-pca:before { + content: "\e911"; +} +/** + * Reprint */ +.ss-chr:before { + content: "\e65e"; +} +.ss-ath:before { + content: "\e65f"; +} +.ss-brb:before { + content: "\e660"; +} +.ss-btd:before { + content: "\e661"; +} +.ss-dkm:before { + content: "\e662"; +} +.ss-mma:before { + content: "\e663"; +} +.ss-mm2:before { + content: "\e695"; +} +.ss-ema:before { + content: "\e903"; +} +.ss-mm3:before { + content: "\e912"; +} +/** + * Beginner */ +.ss-por:before { + content: "\e664"; +} +.ss-po2:before { + content: "\e665"; +} +.ss-ptk:before { + content: "\e666"; +} +.ss-s99:before { + content: "\e667"; +} +.ss-s00:before { + content: "\e668"; +} +.ss-w16:before { + content: "\e907"; +} +/** + * Duel Decks */ +.ss-evg:before { + content: "\e669"; +} +.ss-dd2:before { + content: "\e66a"; +} +.ss-ddc:before { + content: "\e66b"; +} +.ss-ddd:before { + content: "\e66c"; +} +.ss-dde:before { + content: "\e66d"; +} +.ss-ddf:before { + content: "\e66e"; +} +.ss-ddg:before { + content: "\e66f"; +} +.ss-ddh:before { + content: "\e670"; +} +.ss-ddi:before { + content: "\e671"; +} +.ss-ddj:before { + content: "\e672"; +} +.ss-ddk:before { + content: "\e673"; +} +.ss-ddl:before { + content: "\e674"; +} +.ss-ddm:before { + content: "\e675"; +} +.ss-ddn:before { + content: "\e676"; +} +.ss-ddo:before { + content: "\e677"; +} +.ss-ddp:before { + content: "\e698"; +} +.ss-ddq:before { + content: "\e908"; +} +.ss-ddr:before { + content: "\e90d"; +} +/** + * From the Vault */ +.ss-drb:before { + content: "\e678"; +} +.ss-v09:before { + content: "\e679"; +} +.ss-v10:before { + content: "\e67a"; +} +.ss-v11:before { + content: "\e67b"; +} +.ss-v12:before { + content: "\e67c"; +} +.ss-v13:before { + content: "\e67d"; +} +.ss-v14:before { + content: "\e67e"; +} +.ss-v15:before { + content: "\e905"; +} +.ss-v16:before { + content: "\e906"; +} +/** + * Premium Deck Series */ +.ss-h09:before { + content: "\e67f"; +} +.ss-pd2:before { + content: "\e680"; +} +.ss-pd3:before { + content: "\e681"; +} +.ss-md1:before { + content: "\e682"; +} +/** + * Promotional */ +.ss-pgru:before { + content: "\e683"; +} +.ss-pmtg1:before { + content: "\e684"; +} +.ss-pmtg2:before { + content: "\e685"; +} +.ss-pleaf:before { + content: "\e686"; +} +.ss-pmei:before { + content: "\e687"; +} +.ss-parl:before { + content: "\e688"; +} +.ss-dpa:before { + content: "\e689"; +} +.ss-pbook:before { + content: "\e68a"; +} +.ss-past:before { + content: "\e68b"; +} +.ss-parl2:before { + content: "\e68c"; +} +.ss-exp:before { + content: "\e69a"; +} +.ss-psalvat05:before { + content: "\e909"; +} +.ss-psalvat11:before { + content: "\e90a"; +} +.ss-mp1:before { + content: "\e913"; +} +/** + * Online */ +.ss-med:before { + content: "\e68d"; +} +.ss-me2:before { + content: "\e68e"; +} +.ss-me3:before { + content: "\e68f"; +} +.ss-me4:before { + content: "\e690"; +} +.ss-tpr:before { + content: "\e694"; +} +.ss-vma:before { + content: "\e696"; +} +.ss-xlcu:before { + content: "\e90c"; +} +/** + * Un-serious */ +.ss-ugl:before { + content: "\e691"; +} +.ss-unh:before { + content: "\e692"; +} +.ss-border:after { content: ""; position: absolute; left: -0.05em; - top: 0em; + top: .0em; color: #fff; font-size: 1.15em; z-index: -1; @@ -1054,43 +694,33 @@ -webkit-background-clip: text; -webkit-text-fill-color: transparent; } - -.ss.ss-border .ss.ss-van:after { - content: ""; +.ss-border.ss-van:after { + content: "\e655"; } - -.ss.ss-border .ss.ss-arc:after { - content: ""; +.ss-border.ss-hop:after { + content: "\e656"; } - -.ss.ss-border .ss.ss-cmd:after { - content: ""; +.ss-border.ss-arc:after { + content: "\e657"; } - -.ss.ss-border .ss.ss-cm1:after { - content: ""; +.ss-border.ss-cmd:after { + content: "\e658"; } - -.ss.ss-border .ss.ss-c13:after { - content: ""; +.ss-border.ss-pc2:after { + content: "\e659"; } - -.ss.ss-border .ss.ss-c14:after { - content: ""; +.ss-border.ss-cm1:after { + content: "\e65a"; } - -.ss.ss-border .ss.ss-c15:after { - content: ""; +.ss-border.ss-c13:after { + content: "\e65b"; } - -.ss.ss-border .ss.ss-hop:after { - content: ""; +.ss-border.ss-cns:after { + content: "\e65c"; } - -.ss.ss-border .ss.ss-pc2:after { - content: ""; +.ss-border.ss-c14:after { + content: "\e65d"; } - -.ss.ss-border .ss.ss-cns:after { - content: ""; +.ss-border.ss-c15:after { + content: "\e900"; } diff --git a/css/keyrune.min.css b/css/keyrune.min.css index 558355e..75a4744 100644 --- a/css/keyrune.min.css +++ b/css/keyrune.min.css @@ -1 +1 @@ -@charset "UTF-8";@font-face{font-family:Keyrune;src:url(../fonts/keyrune.eot?v=1.7.2);src:url(../fonts/keyrune.eot?#iefix&v=1.7.2) format("embedded-opentype"),url(../fonts/keyrune.woff2?v=1.7.2) format("woff2"),url(../fonts/keyrune.woff?v=1.7.2) format("woff"),url(../fonts/keyrune.ttf?v=1.7.2) format("truetype"),url(../fonts/keyrune.svg?v=1.7.2#keyrune) format("svg");font-weight:400;font-style:normal}.ss{display:inline-block;font:normal normal normal 14px Keyrune;font-size:inherit;line-height:1em;text-rendering:auto;-webkit-transform:translate(0);transform:translate(0);speak:none;text-transform:none;vertical-align:middle;-webkit-font-smoothing:antialiased;-moz-font-smoothing:grayscale}.ss:before{content:""}.ss.ss-lea:before{content:""}.ss.ss-leb:before{content:""}.ss.ss-2ed:before{content:""}.ss.ss-3ed:before{content:""}.ss.ss-4ed:before{content:""}.ss.ss-psum:before{content:""}.ss.ss-5ed:before{content:""}.ss.ss-6ed:before{content:""}.ss.ss-7ed:before{content:""}.ss.ss-8ed:before{content:""}.ss.ss-9ed:before{content:""}.ss.ss-10e:before{content:""}.ss.ss-m10:before{content:""}.ss.ss-m11:before{content:""}.ss.ss-m12:before{content:""}.ss.ss-m13:before{content:""}.ss.ss-m14:before{content:""}.ss.ss-m15:before{content:""}.ss.ss-bcore:before{content:""}.ss.ss-ori:before{content:""}.ss.ss-arn:before{content:""}.ss.ss-atq:before{content:""}.ss.ss-leg:before{content:""}.ss.ss-drk:before{content:""}.ss.ss-fem:before{content:""}.ss.ss-hml:before{content:""}.ss.ss-ice:before{content:""}.ss.ss-all:before{content:""}.ss.ss-csp:before{content:""}.ss.ss-mir:before{content:""}.ss.ss-vis:before{content:""}.ss.ss-wth:before{content:""}.ss.ss-tmp:before{content:""}.ss.ss-sth:before{content:""}.ss.ss-exo:before{content:""}.ss.ss-usg:before{content:""}.ss.ss-ulg:before{content:""}.ss.ss-uds:before{content:""}.ss.ss-mmq:before{content:""}.ss.ss-nms:before{content:""}.ss.ss-pcy:before{content:""}.ss.ss-inv:before{content:""}.ss.ss-pls:before{content:""}.ss.ss-apc:before{content:""}.ss.ss-ody:before{content:""}.ss.ss-tor:before{content:""}.ss.ss-jud:before{content:""}.ss.ss-ons:before{content:""}.ss.ss-lgn:before{content:""}.ss.ss-scg:before{content:""}.ss.ss-mrd:before{content:""}.ss.ss-dst:before{content:""}.ss.ss-5dn:before{content:""}.ss.ss-chk:before{content:""}.ss.ss-bok:before{content:""}.ss.ss-sok:before{content:""}.ss.ss-rav:before{content:""}.ss.ss-gpt:before{content:""}.ss.ss-dis:before{content:""}.ss.ss-tsp:before{content:""}.ss.ss-plc:before{content:""}.ss.ss-fut:before{content:""}.ss.ss-lrw:before{content:""}.ss.ss-mor:before{content:""}.ss.ss-shm:before{content:""}.ss.ss-eve:before{content:""}.ss.ss-ala:before{content:""}.ss.ss-con:before{content:""}.ss.ss-arb:before{content:""}.ss.ss-zen:before{content:""}.ss.ss-wwk:before{content:""}.ss.ss-roe:before{content:""}.ss.ss-som:before{content:""}.ss.ss-mbs:before{content:""}.ss.ss-nph:before{content:""}.ss.ss-isd:before{content:""}.ss.ss-dka:before{content:""}.ss.ss-avr:before{content:""}.ss.ss-rtr:before{content:""}.ss.ss-gtc:before{content:""}.ss.ss-dgm:before{content:""}.ss.ss-ths:before{content:""}.ss.ss-bng:before{content:""}.ss.ss-jou:before{content:""}.ss.ss-ktk:before{content:""}.ss.ss-frf:before{content:""}.ss.ss-dtk:before{content:""}.ss.ss-bfz:before{content:""}.ss.ss-ogw:before{content:""}.ss.ss-soi:before{content:""}.ss.ss-emn:before{content:""}.ss.ss-kld:before{content:""}.ss.ss-aer:before{content:""}.ss.ss-van:before{content:""}.ss.ss-hop:before{content:""}.ss.ss-arc:before{content:""}.ss.ss-cmd:before{content:""}.ss.ss-pc2:before{content:""}.ss.ss-cm1:before{content:""}.ss.ss-c13:before{content:""}.ss.ss-cns:before{content:""}.ss.ss-c14:before{content:""}.ss.ss-c15:before{content:""}.ss.ss-cn2:before{content:""}.ss.ss-c16:before{content:""}.ss.ss-pca:before{content:""}.ss.ss-chr:before{content:""}.ss.ss-ath:before{content:""}.ss.ss-brb:before{content:""}.ss.ss-btd:before{content:""}.ss.ss-dkm:before{content:""}.ss.ss-mma:before{content:""}.ss.ss-mm2:before{content:""}.ss.ss-ema:before{content:""}.ss.ss-mm3:before{content:""}.ss.ss-por:before{content:""}.ss.ss-po2:before{content:""}.ss.ss-ptk:before{content:""}.ss.ss-s99:before{content:""}.ss.ss-s00:before{content:""}.ss.ss-w16:before{content:""}.ss.ss-evg:before{content:""}.ss.ss-dd2:before{content:""}.ss.ss-ddc:before{content:""}.ss.ss-ddd:before{content:""}.ss.ss-dde:before{content:""}.ss.ss-ddf:before{content:""}.ss.ss-ddg:before{content:""}.ss.ss-ddh:before{content:""}.ss.ss-ddi:before{content:""}.ss.ss-ddj:before{content:""}.ss.ss-ddk:before{content:""}.ss.ss-ddl:before{content:""}.ss.ss-ddm:before{content:""}.ss.ss-ddn:before{content:""}.ss.ss-ddo:before{content:""}.ss.ss-ddp:before{content:""}.ss.ss-ddq:before{content:""}.ss.ss-ddr:before{content:""}.ss.ss-drb:before{content:""}.ss.ss-v09:before{content:""}.ss.ss-v10:before{content:""}.ss.ss-v11:before{content:""}.ss.ss-v12:before{content:""}.ss.ss-v13:before{content:""}.ss.ss-v14:before{content:""}.ss.ss-v15:before{content:""}.ss.ss-v16:before{content:""}.ss.ss-h09:before{content:""}.ss.ss-pd2:before{content:""}.ss.ss-pd3:before{content:""}.ss.ss-md1:before{content:""}.ss.ss-pgru:before{content:""}.ss.ss-pmtg1:before{content:""}.ss.ss-pmtg2:before{content:""}.ss.ss-pleaf:before{content:""}.ss.ss-pmei:before{content:""}.ss.ss-parl:before{content:""}.ss.ss-dpa:before{content:""}.ss.ss-pbook:before{content:""}.ss.ss-past:before{content:""}.ss.ss-parl2:before{content:""}.ss.ss-exp:before{content:""}.ss.ss-psalvat05:before{content:""}.ss.ss-psalvat11:before{content:""}.ss.ss-mp1:before{content:""}.ss.ss-med:before{content:""}.ss.ss-me2:before{content:""}.ss.ss-me3:before{content:""}.ss.ss-me4:before{content:""}.ss.ss-tpr:before{content:""}.ss.ss-vma:before{content:""}.ss.ss-xlcu:before{content:""}.ss.ss-ugl:before{content:""}.ss.ss-unh:before{content:""}.ss.ss-common{color:#1a1718}.ss.ss-common.ss-grad{background:-webkit-gradient(linear,left top,right top,color-stop(0,#302b2c),color-stop(50%,#474040),color-stop(100%,#302b2c));background:-webkit-linear-gradient(left,#302b2c,#474040 50%,#302b2c);-webkit-text-stroke:.03em #000;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.ss.ss-uncommon{color:#707883}.ss.ss-uncommon.ss-grad{background:-webkit-gradient(linear,left top,right top,color-stop(0,#5a6572),color-stop(50%,#9e9e9e),color-stop(100%,#5a6572));background:-webkit-linear-gradient(left,#5a6572,#9e9e9e 50%,#5a6572);-webkit-text-stroke:.03em #111;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.ss.ss-rare{color:#a58e4a}.ss.ss-rare.ss-grad{background:-webkit-gradient(linear,left top,right top,color-stop(0,#876a3b),color-stop(50%,#dfbd6b),color-stop(100%,#876a3b));background:-webkit-linear-gradient(left,#876a3b,#dfbd6b 50%,#876a3b);-webkit-text-stroke:.03em #333;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.ss.ss-mythic{color:#bf4427}.ss.ss-mythic.ss-grad{background:-webkit-gradient(linear,left top,right top,color-stop(0,#b21f0f),color-stop(50%,#f38300),color-stop(100%,#b21f0f));background:-webkit-linear-gradient(left,#b21f0f,#f38300 50%,#b21f0f);-webkit-text-stroke:.03em #333;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.ss.ss-2x{font-size:2em}.ss.ss-3x{font-size:3em}.ss.ss-4x{font-size:4em}.ss.ss-5x{font-size:5em}.ss.ss-6x{font-size:6em}.ss.ss-fw{width:calc(18em / 14px);text-align:center}.ss.ss-no-border{-webkit-text-stroke:0;text-stroke:0}.ss.ss-border:after{content:"";position:absolute;left:-.05em;top:0;color:#fff;font-size:1.15em;z-index:-1;background:#fff;-webkit-text-stroke:.05em #fff;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.ss.ss-border .ss.ss-van:after{content:""}.ss.ss-border .ss.ss-arc:after{content:""}.ss.ss-border .ss.ss-cmd:after{content:""}.ss.ss-border .ss.ss-cm1:after{content:""}.ss.ss-border .ss.ss-c13:after{content:""}.ss.ss-border .ss.ss-c14:after{content:""}.ss.ss-border .ss.ss-c15:after{content:""}.ss.ss-border .ss.ss-hop:after{content:""}.ss.ss-border .ss.ss-pc2:after{content:""}.ss.ss-border .ss.ss-cns:after{content:""} \ No newline at end of file +.ss-border:after,.ss-common.ss-grad,.ss-mythic.ss-grad,.ss-rare.ss-grad,.ss-uncommon.ss-grad{-webkit-text-fill-color:transparent}@font-face{font-family:Keyrune;src:url(../fonts/keyrune.eot?v=1.8.0);src:url(../fonts/keyrune.eot?#iefix&v=1.8.0) format('embedded-opentype'),url(../fonts/keyrune.woff2?v=1.8.0) format('woff2'),url(../fonts/keyrune.woff?v=1.8.0) format('woff'),url(../fonts/keyrune.ttf?v=1.8.0) format('truetype'),url(../fonts/keyrune.svg?v=1.8.0#keyrune) format('svg');font-weight:400;font-style:normal}.ss{display:inline-block;font:normal normal normal 14px/1 Keyrune;font-size:inherit;line-height:1em;text-rendering:auto;transform:translate(0,0);speak:none;text-transform:none;vertical-align:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ss:before{content:"\e684"}.ss-2x{font-size:2em}.ss-3x{font-size:3em}.ss-4x{font-size:4em}.ss-5x{font-size:5em}.ss-6x{font-size:6em}.ss-common{color:#1A1718}.ss-common.ss-grad{background:-webkit-gradient(linear,left top,right top,color-stop(1%,#302b2c),color-stop(50%,#474040),color-stop(100%,#302b2c));background:-webkit-linear-gradient(left,#302b2c 1%,#474040 50%,#302b2c 100%);-webkit-text-stroke:.03em #000;-webkit-background-clip:text}.ss-common.ss-grad.ss-no-border{-webkit-text-stroke:0}.ss-uncommon{color:#707883}.ss-uncommon.ss-grad{background:-webkit-gradient(linear,left top,right top,color-stop(0,#5a6572),color-stop(50%,#9e9e9e),color-stop(100%,#5a6572));background:-webkit-linear-gradient(left,#5a6572 0,#9e9e9e 50%,#5a6572 100%);-webkit-text-stroke:.03em #111;-webkit-background-clip:text}.ss-uncommon.ss-grad.ss-no-border{-webkit-text-stroke:0}.ss-rare{color:#A58E4A}.ss-rare.ss-grad{background:-webkit-gradient(linear,left top,right top,color-stop(0,#876a3b),color-stop(50%,#dfbd6b),color-stop(100%,#876a3b));background:-webkit-linear-gradient(left,#876a3b 0,#dfbd6b 50%,#876a3b 100%);-webkit-text-stroke:.03em #333;-webkit-background-clip:text}.ss-rare.ss-grad.ss-no-border{-webkit-text-stroke:0}.ss-mythic{color:#BF4427}.ss-mythic.ss-grad{background:-webkit-gradient(linear,left top,right top,color-stop(0,#b21f0f),color-stop(50%,#f38300),color-stop(100%,#b21f0f));background:-webkit-linear-gradient(left,#b21f0f 0,#f38300 50%,#b21f0f 100%);-webkit-text-stroke:.03em #333;-webkit-background-clip:text}.ss-mythic.ss-grad.ss-no-border{-webkit-text-stroke:0}.ss-fw{width:1.2857142857142858em;text-align:center}.ss-lea:before{content:"\e600"}.ss-leb:before{content:"\e601"}.ss-2ed:before{content:"\e602"}.ss-3ed:before{content:"\e603"}.ss-4ed:before{content:"\e604"}.ss-psum:before{content:"\e605"}.ss-5ed:before{content:"\e606"}.ss-6ed:before{content:"\e607"}.ss-7ed:before{content:"\e608"}.ss-8ed:before{content:"\e609"}.ss-9ed:before{content:"\e60a"}.ss-10e:before{content:"\e60b"}.ss-m10:before{content:"\e60c"}.ss-m11:before{content:"\e60d"}.ss-m12:before{content:"\e60e"}.ss-m13:before{content:"\e60f"}.ss-m14:before{content:"\e610"}.ss-m15:before{content:"\e611"}.ss-bcore:before{content:"\e612"}.ss-ori:before{content:"\e697"}.ss-arn:before{content:"\e613"}.ss-atq:before{content:"\e614"}.ss-leg:before{content:"\e615"}.ss-drk:before{content:"\e616"}.ss-fem:before{content:"\e617"}.ss-hml:before{content:"\e618"}.ss-ice:before{content:"\e619"}.ss-all:before{content:"\e61a"}.ss-csp:before{content:"\e61b"}.ss-mir:before{content:"\e61c"}.ss-vis:before{content:"\e61d"}.ss-wth:before{content:"\e61e"}.ss-tmp:before{content:"\e61f"}.ss-sth:before{content:"\e620"}.ss-exo:before{content:"\e621"}.ss-usg:before{content:"\e622"}.ss-ulg:before{content:"\e623"}.ss-uds:before{content:"\e624"}.ss-mmq:before{content:"\e625"}.ss-nms:before{content:"\e626"}.ss-pcy:before{content:"\e627"}.ss-inv:before{content:"\e628"}.ss-pls:before{content:"\e629"}.ss-apc:before{content:"\e62a"}.ss-ody:before{content:"\e62b"}.ss-tor:before{content:"\e62c"}.ss-jud:before{content:"\e62d"}.ss-ons:before{content:"\e62e"}.ss-lgn:before{content:"\e62f"}.ss-scg:before{content:"\e630"}.ss-mrd:before{content:"\e631"}.ss-dst:before{content:"\e632"}.ss-5dn:before{content:"\e633"}.ss-chk:before{content:"\e634"}.ss-bok:before{content:"\e635"}.ss-sok:before{content:"\e636"}.ss-rav:before{content:"\e637"}.ss-gpt:before{content:"\e638"}.ss-dis:before{content:"\e639"}.ss-tsp:before{content:"\e63a"}.ss-plc:before{content:"\e63b"}.ss-fut:before{content:"\e63c"}.ss-lrw:before{content:"\e63d"}.ss-mor:before{content:"\e63e"}.ss-shm:before{content:"\e63f"}.ss-eve:before{content:"\e640"}.ss-ala:before{content:"\e641"}.ss-con:before{content:"\e642"}.ss-arb:before{content:"\e643"}.ss-zen:before{content:"\e644"}.ss-wwk:before{content:"\e645"}.ss-roe:before{content:"\e646"}.ss-som:before{content:"\e647"}.ss-mbs:before{content:"\e648"}.ss-nph:before{content:"\e649"}.ss-isd:before{content:"\e64a"}.ss-dka:before{content:"\e64b"}.ss-avr:before{content:"\e64c"}.ss-rtr:before{content:"\e64d"}.ss-gtc:before{content:"\e64e"}.ss-dgm:before{content:"\e64f"}.ss-ths:before{content:"\e650"}.ss-bng:before{content:"\e651"}.ss-jou:before{content:"\e652"}.ss-ktk:before{content:"\e653"}.ss-frf:before{content:"\e654"}.ss-dtk:before{content:"\e693"}.ss-bfz:before{content:"\e699"}.ss-ogw:before{content:"\e901"}.ss-soi:before{content:"\e902"}.ss-emn:before{content:"\e90b"}.ss-kld:before{content:"\e90e"}.ss-aer:before{content:"\e90f"}.ss-akh:before{content:"\e914"}.ss-van:before{content:"\e655"}.ss-hop:before{content:"\e656"}.ss-arc:before{content:"\e657"}.ss-cmd:before{content:"\e658"}.ss-pc2:before{content:"\e659"}.ss-cm1:before{content:"\e65a"}.ss-c13:before{content:"\e65b"}.ss-cns:before{content:"\e65c"}.ss-c14:before{content:"\e65d"}.ss-c15:before{content:"\e900"}.ss-cn2:before{content:"\e904"}.ss-c16:before{content:"\e910"}.ss-pca:before{content:"\e911"}.ss-chr:before{content:"\e65e"}.ss-ath:before{content:"\e65f"}.ss-brb:before{content:"\e660"}.ss-btd:before{content:"\e661"}.ss-dkm:before{content:"\e662"}.ss-mma:before{content:"\e663"}.ss-mm2:before{content:"\e695"}.ss-ema:before{content:"\e903"}.ss-mm3:before{content:"\e912"}.ss-por:before{content:"\e664"}.ss-po2:before{content:"\e665"}.ss-ptk:before{content:"\e666"}.ss-s99:before{content:"\e667"}.ss-s00:before{content:"\e668"}.ss-w16:before{content:"\e907"}.ss-evg:before{content:"\e669"}.ss-dd2:before{content:"\e66a"}.ss-ddc:before{content:"\e66b"}.ss-ddd:before{content:"\e66c"}.ss-dde:before{content:"\e66d"}.ss-ddf:before{content:"\e66e"}.ss-ddg:before{content:"\e66f"}.ss-ddh:before{content:"\e670"}.ss-ddi:before{content:"\e671"}.ss-ddj:before{content:"\e672"}.ss-ddk:before{content:"\e673"}.ss-ddl:before{content:"\e674"}.ss-ddm:before{content:"\e675"}.ss-ddn:before{content:"\e676"}.ss-ddo:before{content:"\e677"}.ss-ddp:before{content:"\e698"}.ss-ddq:before{content:"\e908"}.ss-ddr:before{content:"\e90d"}.ss-drb:before{content:"\e678"}.ss-v09:before{content:"\e679"}.ss-v10:before{content:"\e67a"}.ss-v11:before{content:"\e67b"}.ss-v12:before{content:"\e67c"}.ss-v13:before{content:"\e67d"}.ss-v14:before{content:"\e67e"}.ss-v15:before{content:"\e905"}.ss-v16:before{content:"\e906"}.ss-h09:before{content:"\e67f"}.ss-pd2:before{content:"\e680"}.ss-pd3:before{content:"\e681"}.ss-md1:before{content:"\e682"}.ss-pgru:before{content:"\e683"}.ss-pmtg1:before{content:"\e684"}.ss-pmtg2:before{content:"\e685"}.ss-pleaf:before{content:"\e686"}.ss-pmei:before{content:"\e687"}.ss-parl:before{content:"\e688"}.ss-dpa:before{content:"\e689"}.ss-pbook:before{content:"\e68a"}.ss-past:before{content:"\e68b"}.ss-parl2:before{content:"\e68c"}.ss-exp:before{content:"\e69a"}.ss-psalvat05:before{content:"\e909"}.ss-psalvat11:before{content:"\e90a"}.ss-mp1:before{content:"\e913"}.ss-med:before{content:"\e68d"}.ss-me2:before{content:"\e68e"}.ss-me3:before{content:"\e68f"}.ss-me4:before{content:"\e690"}.ss-tpr:before{content:"\e694"}.ss-vma:before{content:"\e696"}.ss-xlcu:before{content:"\e90c"}.ss-ugl:before{content:"\e691"}.ss-unh:before{content:"\e692"}.ss-border:after{content:"";position:absolute;left:-.05em;top:0;color:#fff;font-size:1.15em;z-index:-1;background:#fff;-webkit-text-stroke:.05em #fff;-webkit-background-clip:text}.ss-border.ss-van:after{content:"\e655"}.ss-border.ss-hop:after{content:"\e656"}.ss-border.ss-arc:after{content:"\e657"}.ss-border.ss-cmd:after{content:"\e658"}.ss-border.ss-pc2:after{content:"\e659"}.ss-border.ss-cm1:after{content:"\e65a"}.ss-border.ss-c13:after{content:"\e65b"}.ss-border.ss-cns:after{content:"\e65c"}.ss-border.ss-c14:after{content:"\e65d"}.ss-border.ss-c15:after{content:"\e900"} diff --git a/fonts/keyrune.eot b/fonts/keyrune.eot old mode 100755 new mode 100644 index 78e63c72f08630e0b6cd83cf6644df85fcd8248b..829ab23501dd689d39b1d6a64ec9b015b468da10 GIT binary patch delta 506 zcmbR8in-+tGaJh{28M*M6WPp|-FGxhw6EYl#K6F?2Z$4ra}x_*224CAS8w&m`vn67 zV*>-j+lGwP#1!sNpCT9--UAgem}LM3*blMf1Njy}zDh=JNkvg1(|RC3hJk_ULQZ~i zqCnYApwuTFpcz@Yi4_G5rx>3wFnpc?6jaDd%uOvGs zB+tOiJUN-sfl*}g5=LJ}kWVPO3KlzBb#WCjriB?e;#KL!S2J7#k^W^q1d zc0Fcwb2&zF8)j1=huMx1BrL`z4ishwvVh9;7}X)l_!!xjsQLQ(s;m3@K?yY=OU>IP z!$iu)V1h=z!om$$bnBO{|hd|bSNlXY2XnRPvwRCZO;3Jwm@)Cvj?)>3j)X42J- zjEdCNjgE@a6W7<*myj?pFpywTbW|`*OiVOXaCCH3_;*)KS4>=2Pgh*YRaw@`(n^+1 z#naPMMcKpMLs>IOL(<6DNJ`4Y*hEqzKojVFMhM>3u){r`-{va=Hw#dJftTS*R@e^^ z3q((T@XnlZ%Vvr9XPB6nH*9|NF^f^8>;O;_qd)28Mz!6WPp|72{JU+E?%&WME*}1H=i*xrqfY{U;uitKTN@?-jn;99Yi7DL9@7FOfypsT`GRpu8upeT{1M&lae3gvcl8U^8Od$CZ1_q`xIr+(n zGq(Y?GkkOanvs#4SW&=mlJN-x!>1KML4~};+|+XQ=RgIYP5|ZG3i69f7?^=F3|~Oz zDKIcIPfliZU=*IbgwdB#c=IR5({Gd+figh6D>Ys*p5Nvx12+pu1H%=etBYauhGaE58~g-;ob0wDDan;9Q5h=NowFirmWRd{p!m!*sVgymFL diff --git a/fonts/keyrune.svg b/fonts/keyrune.svg old mode 100755 new mode 100644 index 5446c94..57eae29 --- a/fonts/keyrune.svg +++ b/fonts/keyrune.svg @@ -182,4 +182,5 @@ + \ No newline at end of file diff --git a/fonts/keyrune.ttf b/fonts/keyrune.ttf old mode 100755 new mode 100644 index fee603147622b225b5e8d4ed8f849d1840b132da..670bfe54f75256052c0ce88ac3fcaf5c9f35789b GIT binary patch delta 512 zcmezHg89KK=6VK31_lOhh6V;^1_S?KeItG$)wQhVPIgokdvQmnJ7?p6Dapd2WUuEZem3N!zsom3=E%V00kBD5_40_ z)t>_ueBJ?+Z!5?zE&)0e2);T@+~LkBGKtZbQDn0pKo(G$9-}%$86PA25;b36 zUv+g~KPaIFWT|wdmaI!8dEwio%lgh42TEW2~ znp#1@!CFdg%1pYtkx`Mly3tWldgA)}`VtZb1_lx=ijE3~iHV7Z3XYDB3jgkk>57T# z>gkFrxhl(ASz5`msd##NswjK7dnjuLX-FCw8%ar-7@J6H1ZV=i4vH`!-qo$y zzDh=JNk!g4CXjpy0|V2Uocv_V#F^WG`WZet01e5=O{^$jILY{gf#K5%prArtVs2`= z`g5RyPbYx#Z3X$oB|wJ)!IyxEJKPzCCo%dm3UBsfJpD!)X)x|J+vdVjN#?6~!-k)LGtn(>@kqzwm&70?aKEwzB73@(o diff --git a/fonts/keyrune.woff b/fonts/keyrune.woff old mode 100755 new mode 100644 index 184d7a00f0a46600bfbe23d5a5f773fdd5625bcd..99cbe6f9b55d50ab1f3574a69ae56ee4e3ea6502 GIT binary patch delta 548 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 w+Tz;(2!H_22^z0to;B04{OdS^xk5 From 7fee09911327773c3cbfbdc1d9440bec1cbeeba8 Mon Sep 17 00:00:00 2001 From: jordanbrauer Date: Tue, 13 Dec 2016 22:00:05 -0600 Subject: [PATCH 20/21] Refactored and simplified SASS code. Added Amonkhet symbol into array. --- sass/_helpers.scss | 33 +++-- sass/_rarities.scss | 14 +-- sass/_setsymbol.scss | 26 ++-- sass/_settings.scss | 279 ------------------------------------------ sass/_typography.scss | 14 +-- sass/_variables.scss | 142 ++++++++++----------- sass/keyrune.scss | 1 - 7 files changed, 111 insertions(+), 398 deletions(-) delete mode 100644 sass/_settings.scss diff --git a/sass/_helpers.scss b/sass/_helpers.scss index 6b7ae17..fc50c1f 100644 --- a/sass/_helpers.scss +++ b/sass/_helpers.scss @@ -2,41 +2,36 @@ /** Setsymbol Size Modifiers ==================== */ -@each $size in $setsymbol_sizes { +@each $size in $keyrune_sizes { .#{$keyrune_prefix}.#{$keyrune_prefix}-#{nth($size, 1)} { font-size: #{nth($size, 2)}; } } -.#{$keyrune_prefix}.#{$keyrune_prefix}-fw { - width: $setsymbol_fixed_size_width; - text-align: $setsymbol_fixed_size_text_align; -} - /** Setsymbol No Border ========================= * | This class can remain a singleton since it is generic, making * | it a helper class. */ .#{$keyrune_prefix}.#{$keyrune_prefix}-no-border { - -webkit-text-stroke: $setsymbol_no_border; - text-stroke: $setsymbol_no_border; + -webkit-text-stroke: 0; + text-stroke: 0; } /** Setsymbol Border ============================ */ .#{$keyrune_prefix}.#{$keyrune_prefix}-border { &:after { - content: $setsymbol_border_after_content; - position: $setsymbol_border_after_position; - left: $setsymbol_border_after_left; - top: $setsymbol_border_after_top; - color: $setsymbol_border_after_color; - font-size: $setsymbol_border_after_font_size; - z-index: $setsymbol_border_after_z_index; - background: $setsymbol_border_after_background; - -webkit-text-stroke: $setsymbol_border_after_text_stroke; - -webkit-background-clip: $setsymbol_border_after_background_clip; - -webkit-text-fill-color: $setsymbol_border_after_text_fill_color; + content: ""; + position: absolute; + left: -0.05em; + top: 0.0em; + z-index: -1; + color: $white; + font-size: 1.15em; + background: $white; + -webkit-text-stroke: 0.05em $white; + -webkit-background-clip: $keyrune_background_clip; + -webkit-text-fill-color: $keyrune_text_fill; } @each $set in $mtg_setlist_borders { diff --git a/sass/_rarities.scss b/sass/_rarities.scss index 09fa003..39f3b3b 100644 --- a/sass/_rarities.scss +++ b/sass/_rarities.scss @@ -5,7 +5,7 @@ * | some of the things in here properly. Either way, I kept those * | hard-coded prefxed to ensure it to work! */ -@each $scheme in $rarity_palette { +@each $scheme in $keyrune_palette { /* #{nth($scheme, 1)} */ .#{$keyrune_prefix}.#{$keyrune_prefix}-#{nth($scheme, 1)} { color: #{nth($scheme, 2)}; @@ -13,13 +13,13 @@ &.#{$keyrune_prefix}-grad { // webkit outline/gradient /* Chrome, Safari4+ */ - background: -webkit-gradient(linear, left top, right top, color-stop( $setsymbol_color_stop1, #{nth($scheme, 3)} ), color-stop( $setsymbol_color_stop2, #{nth($scheme, 4)} ), color-stop( $setsymbol_color_stop3, #{nth($scheme, 3)} )); + background: -webkit-gradient(linear, left top, right top, color-stop(0%, #{nth($scheme, 3)}), color-stop(50%, #{nth($scheme, 4)}), color-stop(100%, #{nth($scheme, 3)})); /* Chrome10+, Safari5.1+ */ - background: -webkit-linear-gradient(left, #{nth($scheme, 3)} $setsymbol_color_stop1, #{nth($scheme, 4)} $setsymbol_color_stop2, #{nth($scheme, 3)} $setsymbol_color_stop3); - -webkit-text-stroke: $setsymbol_text_stroke #{nth($scheme, 5)}; - -webkit-text-fill-color: $setsymbol_text_fill_color; - -webkit-background-clip: $setsymbol_background_clip; - background-clip: $setsymbol_background_clip; + background: -webkit-linear-gradient(left, #{nth($scheme, 3)} 0%, #{nth($scheme, 4)} 50%, #{nth($scheme, 3)} 100%); + -webkit-text-stroke: 0.03em #{nth($scheme, 5)}; + -webkit-text-fill-color: $keyrune_text_fill; + -webkit-background-clip: $keyrune_background_clip; + background-clip: $keyrune_background_clip; } } } diff --git a/sass/_setsymbol.scss b/sass/_setsymbol.scss index 5969ef2..b88cb24 100644 --- a/sass/_setsymbol.scss +++ b/sass/_setsymbol.scss @@ -1,24 +1,24 @@ -// _setsymbol.scss +// _keyrune.scss /** Setsymbol Base Class ======================== */ .#{$keyrune_prefix} { - display: $setsymbol_display; - font: $setsymbol_font; - font-size: $setsymbol_font_size; - line-height: $setsymbol_line_height; - text-rendering: $setsymbol_text_rendering; - transform: $setsymbol_transform; - speak: $setsymbol_speak; - text-transform: $setsymbol_text_transform; - vertical-align: $setsymbol_vertical_align; + display: inline-block; + font: $keyrune_font; + font-size: inherit; + line-height: 1em; + text-rendering: auto; + transform: translate(0, 0); + speak: none; + text-transform: none; + vertical-align: middle; // Better font rendering - -webkit-font-smoothing: $setsymbol_webkit_font_smoothing; - -moz-font-smoothing: $setsymbol_moz_font_smoothing; + -webkit-font-smoothing: antialiased; + -moz-font-smoothing: grayscale; // default symbol if the set does not exist yet, or setcode does not match &:before { - content: "#{$setsymbol_default_content}"; + content: "#{$keyrune_default_content}"; } } diff --git a/sass/_settings.scss b/sass/_settings.scss deleted file mode 100644 index 49d9eb2..0000000 --- a/sass/_settings.scss +++ /dev/null @@ -1,279 +0,0 @@ -// _variables.scss | _settings.scss - -// Table of Contents: ========================== -// 1. Global -// 2. Keyrune -// 3. Set Symbol -// 4. Keyrune Colors -// 5. Helpers -// 6. MtG Setlist -// - -// 1. Global =================================== -// -$global_font_path: '../fonts' !default; -$global_font_size: 14px !default; - -// 2. Keyrune ================================== -// -$keyrune_font_face: "Keyrune" !default; -$keyrune_version: '1.7.2' !default; -$keyrune_prefix: 'ss' !default; -$keyrune_font_weight: normal !default; -$keyrune_font_style: normal !default; - -// 3. Set Symbol =============================== -// -$setsymbol_display: inline-block !default; -$setsymbol_font: normal normal normal $global_font_size/1 $keyrune_font_face !default; -$setsymbol_font_size: inherit !default; -$setsymbol_line_height: 1em !default; -$setsymbol_text_rendering: auto !default; -$setsymbol_transform: translate(0, 0) !default; -$setsymbol_speak: none !default; -$setsymbol_text_transform: none !default; -$setsymbol_vertical_align: middle !default; -$setsymbol_webkit_font_smoothing: antialiased !default; -$setsymbol_moz_font_smoothing: grayscale !default; -$setsymbol_default_content: "\e684" !default; - -$setsymbol_color_stop1: 0% !default; -$setsymbol_color_stop2: 50% !default; -$setsymbol_color_stop3: 100% !default; -$setsymbol_text_stroke: 0.03em !default; -$setsymbol_text_fill_color: transparent !default; -$setsymbol_background_clip: text !default; - -// 4. Keyrune Colors ============================ -// -$rarity_palette: ( - ('common', #1a1718, #302b2c, #474040, #000), - ('uncommon', #707883, #5a6572, #9e9e9e, #111), - ('rare', #a58e4a, #876a3b, #dfbd6b, #333), - ('mythic', #bf4427, #b21f0f, #f38300, #333) -) !default; - -$white: #fff; - -// 5. Helpers ================================== -// -$setsymbol_sizes: ( - '2x': 2em, - '3x': 3em, - '4x': 4em, - '5x': 5em, - '6x': 6em -) !default; - -$setsymbol_fixed_size_width: calc(18em / 14px) !default; // TODO: might have to light into implementing a units component. perhaps switch to -$setsymbol_fixed_size_text_align: center !default; - -$setsymbol_no_border: 0 !default; - -$setsymbol_border_after_content: "" !default; -$setsymbol_border_after_position: absolute !default; -$setsymbol_border_after_left: -.05em !default; // TODO: change to -0.05em if doesn't effect visual styles. -$setsymbol_border_after_top: .0em !default; // TODO: change to 0.0em " -$setsymbol_border_after_z_index: -1 !default; -$setsymbol_border_after_color: $white !default; -$setsymbol_border_after_font_size: 1.15em !default; -$setsymbol_border_after_background: $white !default; -$setsymbol_border_after_text_stroke: 0.05em $white !default; -$setsymbol_border_after_background_clip: $setsymbol_background_clip !default; -$setsymbol_border_after_text_fill_color: $setsymbol_text_fill_color !default; - -// not really sure what to call this array, although I notice it is for special borders. -$mtg_setlist_borders: ( - ("Vanguard", 'van', "\e655"), - ("Archenemy", 'arc', "\e657"), - ("Commander", 'cmd', "\e658"), - ("Commander's Arsenal", 'cm1', "\e65a"), - ("Commander 2013", 'c13', "\e65b"), - ("Commander 2014", 'c14', "\e65d"), - ("Commander 2015", 'c15', "\e900"), - ("Planechase 2009", 'hop', "\e656"), - ("Planechase 2012", 'pc2', "\e659"), - ("Conspiracy", 'cns', "\e65c") -); - -// 6. MtG Setlist ============================== -// Legend: -// (Set_Name, Set_Code, Set_Glyph) -// -$mtg_setlist: ( - ("Alpha", 'lea', "\e600"), - ("Beta", 'leb', "\e601"), - ("Unlimited", '2ed', "\e602"), - ("Revised", '3ed', "\e603"), - ("4th Edition", '4ed', "\e604"), - ("Summer Magic", 'psum', "\e605"), - ("5th Edition", '5ed', "\e606"), - ("6th Edition", '6ed', "\e607"), - ("7th Edition", '7ed', "\e608"), - ("8th Edition", '8ed', "\e609"), - ("9th Edition", '9ed', "\e60a"), - ("10th Edition", '10e', "\e60b"), - ("Magic 2010", 'm10', "\e60c"), - ("Magic 2011", 'm11', "\e60d"), - ("Magic 2012", 'm12', "\e60e"), - ("Magic 2013", 'm13', "\e60f"), - ("Magic 2014", 'm14', "\e610"), - ("Magic 2015", 'm15', "\e611"), - ("Core background", 'bcore', "\e612"), - ("Magic Origins", 'ori', "\e697"), - ("Arabian Nights", 'arn', "\e613"), - ("Antiquities", 'atq', "\e614"), - ("Legends", 'leg', "\e615"), - ("The Dark", 'drk', "\e616"), - ("Fallen Empires", 'fem', "\e617"), - ("Homelands", 'hml', "\e618"), - ("Ice Age", 'ice', "\e619"), - ("Alliances", 'all', "\e61a"), - ("Coldsnap", 'csp', "\e61b"), - ("Mirage", 'mir', "\e61c"), - ("Visions", 'vis', "\e61d"), - ("Weatherlight", 'wth', "\e61e"), - ("Tempest", 'tmp', "\e61f"), - ("Stronghold", 'sth', "\e620"), - ("Exodus", 'exo', "\e621"), - ("Urza's Saga", 'usg', "\e622"), - ("Urza's Legacy", 'ulg', "\e623"), - ("Urza's Destiny", 'uds', "\e624"), - ("Mercadian Masque", 'mmq', "\e625"), - ("Nemesis", 'nms', "\e626"), - ("Prophecy", 'pcy', "\e627"), - ("Invasion", 'inv', "\e628"), - ("Planeshift", 'pls', "\e629"), - ("Apocalypse", 'apc', "\e62a"), - ("Odyssey", 'ody', "\e62b"), - ("Torment", 'tor', "\e62c"), - ("Judgement", 'jud', "\e62d"), - ("Onslaught", 'ons', "\e62e"), - ("Legions", 'lgn', "\e62f"), - ("Scourge", 'scg', "\e630"), - ("Mirrodin", 'mrd', "\e631"), - ("Darksteel", 'dst', "\e632"), - ("5th Dawn", '5dn', "\e633"), - ("Champions of", 'chk', "\e634"), - ("Betrayers of", 'bok', "\e635"), - ("Saviors of Kamigawa", 'sok', "\e636"), - ("Ravnica", 'rav', "\e637"), - ("Guildpact", 'gpt', "\e638"), - ("Dissension", 'dis', "\e639"), - ("Time Spiral", 'tsp', "\e63a"), - ("Planeshift", 'plc', "\e63b"), - ("Future Sight", 'fut', "\e63c"), - ("Lorwyn", 'lrw', "\e63d"), - ("Morningtide", 'mor', "\e63e"), - ("Shadowmoor", 'shm', "\e63f"), - ("Eventide", 'eve', "\e640"), - ("Shards of Alara", 'ala', "\e641"), - ("Conflux", 'con', "\e642"), - ("Alara Reborn", 'arb', "\e643"), - ("Zendikar", 'zen', "\e644"), - ("Worldwake", 'wwk', "\e645"), - ("Rise of Eldrazi", 'roe', "\e646"), - ("Scars of Mirrodin", 'som', "\e647"), - ("Mirrodin Besieged", 'mbs', "\e648"), - ("New Phyrexia", 'nph', "\e649"), - ("Innistrad", 'isd', "\e64a"), - ("Dark Ascension", 'dka', "\e64b"), - ("Avacyn Restored", 'avr', "\e64c"), - ("Return to Ravnica", 'rtr', "\e64d"), - ("Gatecrash", 'gtc', "\e64e"), - ("Dragon's Maze", 'dgm', "\e64f"), - ("Theros", 'ths', "\e650"), - ("Born of the Gods", 'bng', "\e651"), - ("Journey into Nyx", 'jou', "\e652"), - ("Khans of Tarkir", 'ktk', "\e653"), - ("Fate Reforged", 'frf', "\e654"), - ("Dragons of Tarkir", 'dtk', "\e693"), - ("Battle for Zendikar", 'bfz', "\e699"), - ("Oath of the", 'ogw', "\e901"), - ("Shadows Over", 'soi', "\e902"), - ("Eldritch Moon", 'emn', "\e90b"), - ("Kaladesh", 'kld', "\e90e"), - ("Aether Revolt", 'aer', "\e90f"), - ("Vanguard", 'van', "\e655"), - ("Planechase 2009", 'hop', "\e656"), - ("Archenemy", 'arc', "\e657"), - ("Commander", 'cmd', "\e658"), - ("Planechase 2012", 'pc2', "\e659"), - ("Commander's Arsenal", 'cm1', "\e65a"), - ("Commander 2013", 'c13', "\e65b"), - ("Conspiracy", 'cns', "\e65c"), - ("Commander 2014", 'c14', "\e65d"), - ("Commander 2015", 'c15', "\e900"), - ("Conspiracy 2, Take", 'cn2', "\e904"), - ("Commander 2016", 'c16', "\e910"), - ("Planechase", 'pca', "\e911"), - ("Chronicles", 'chr', "\e65e"), - ("Anthologies", 'ath', "\e65f"), - ("Battle Royale", 'brb', "\e660"), - ("Beatdown", 'btd', "\e661"), - ("Deckmasters", 'dkm', "\e662"), - ("Modern Masters", 'mma', "\e663"), - ("Modern Masters 2015", 'mm2', "\e695"), - ("Eternal Masters", 'ema', "\e903"), - ("Modern Masters 2017", 'mm3', "\e912"), - ("Portal", 'por', "\e664"), - ("Portal 2", 'po2', "\e665"), - ("Portal 3 Kingdoms", 'ptk', "\e666"), - ("Starter 1999", 's99', "\e667"), - ("Starter 2000", 's00', "\e668"), - ("Welcome Deck 2016", 'w16', "\e907"), - ("Elves vs. Goblins", 'evg', "\e669"), - ("Jace vs. Chandra", 'dd2', "\e66a"), - ("Divine vs. Demonic", 'ddc', "\e66b"), - ("Garruk vs. Liliana", 'ddd', "\e66c"), - ("Phyrexia vs.", 'dde', "\e66d"), - ("Elspeth vs.", 'ddf', "\e66e"), - ("Knights vs. Dragons", 'ddg', "\e66f"), - ("Ajani vs. Nicol", 'ddh', "\e670"), - ("Venser vs. Koth", 'ddi', "\e671"), - ("Izzet vs. Golgari", 'ddj', "\e672"), - ("Sorin vs. Tibalt", 'ddk', "\e673"), - ("Heroes vs. Monsters", 'ddl', "\e674"), - ("Jace vs. Vraska", 'ddm', "\e675"), - ("Speed vs. Cunning", 'ddn', "\e676"), - ("Kiora vs. Elspeth", 'ddo', "\e677"), - ("Zendikar vs.", 'ddp', "\e698"), - ("Blessed vs. Cursed", 'ddq', "\e908"), - ("Nissa vs. Ob", 'ddr', "\e90d"), - ("Dragons", 'drb', "\e678"), - ("Exiled", 'v09', "\e679"), - ("Relics", 'v10', "\e67a"), - ("Legends", 'v11', "\e67b"), - ("Realms", 'v12', "\e67c"), - ("Twenty", 'v13', "\e67d"), - ("Annihilation", 'v14', "\e67e"), - ("Angels", 'v15', "\e905"), - ("Lore", 'v16', "\e906"), - ("Slivers", 'h09', "\e67f"), - ("Fire & Lightning", 'pd2', "\e680"), - ("Graveborn", 'pd3', "\e681"), - ("Modern Event Deck", 'md1', "\e682"), - ("Guru", 'pgru', "\e683"), - ("Magic symbol", 'pmtg1', "\e684"), - ("Magic symbol", 'pmtg2', "\e685"), - ("Leaf", 'pleaf', "\e686"), - ("Media Insert", 'pmei', "\e687"), - ("DCI (Arena)", 'parl', "\e688"), - ("Dragons", 'dpa', "\e689"), - ("Book Insert", 'pbook', "\e68a"), - ("Astral", 'past', "\e68b"), - ("Arena logo", 'parl2', "\e68c"), - ("Zendikar", 'exp', "\e69a"), - ("Salvat 2005", 'psalvat05', "\e909"), - ("Salvat 2011", 'psalvat11', "\e90a"), - ("Masterpieces,", 'mp1', "\e913"), - ("Masters Edition", 'med', "\e68d"), - ("Masters Edition II", 'me2', "\e68e"), - ("Masters Edition III", 'me3', "\e68f"), - ("Masters Edition IV", 'me4', "\e690"), - ("Tempest Remastered", 'tpr', "\e694"), - ("Vintage Masters", 'vma', "\e696"), - ("Legendary Cube", 'xlcu', "\e90c"), - ("Unglued", 'ugl', "\e691"), - ("Unhinged", 'unh', "\e692") -) !default; diff --git a/sass/_typography.scss b/sass/_typography.scss index bfe81e5..df3a70d 100644 --- a/sass/_typography.scss +++ b/sass/_typography.scss @@ -2,17 +2,15 @@ /** Keyrune Font-Family ========================= * | Concatenation is purely for readability purposes. - * | - * | TODO: Might come back and create a function to fetch font formats from an array. benefit is shorter syntax. */ @font-face { font-family: "#{$keyrune_font_face}"; - src:url( '#{$global_font_path}' + '/keyrune.eot?v=' + '#{$keyrune_version}' ); - src:url( '#{$global_font_path}' + '/keyrune.eot?#iefix&v=' + '#{$keyrune_version}' ) format( 'embedded-opentype' ), - url( '#{$global_font_path}' + '/keyrune.woff2?v=' + '#{$keyrune_version}' ) format( 'woff2' ), - url( '#{$global_font_path}' + '/keyrune.woff?v=' + '#{$keyrune_version}' ) format( 'woff' ), - url( '#{$global_font_path}' + '/keyrune.ttf?v=' + '#{$keyrune_version}' ) format( 'truetype' ), - url( '#{$global_font_path}' + '/keyrune.svg?v=' + '#{$keyrune_version}' + '#keyrune' ) format( 'svg' ); + src:url('#{$keyrune_font_path}' + '/keyrune.eot?v=' + '#{$keyrune_version}'); + src:url('#{$keyrune_font_path}' + '/keyrune.eot?#iefix&v=' + '#{$keyrune_version}') format('embedded-opentype'), + url('#{$keyrune_font_path}' + '/keyrune.woff2?v=' + '#{$keyrune_version}') format('woff2'), + url('#{$keyrune_font_path}' + '/keyrune.woff?v=' + '#{$keyrune_version}') format('woff'), + url('#{$keyrune_font_path}' + '/keyrune.ttf?v=' + '#{$keyrune_version}') format('truetype'), + url('#{$keyrune_font_path}' + '/keyrune.svg?v=' + '#{$keyrune_version}' + '#keyrune') format('svg'); font-weight: $keyrune_font_weight; font-style: $keyrune_font_style; } diff --git a/sass/_variables.scss b/sass/_variables.scss index 49d9eb2..924d6aa 100644 --- a/sass/_variables.scss +++ b/sass/_variables.scss @@ -1,88 +1,49 @@ -// _variables.scss | _settings.scss +// _variables.scss -// Table of Contents: ========================== -// 1. Global -// 2. Keyrune -// 3. Set Symbol -// 4. Keyrune Colors -// 5. Helpers -// 6. MtG Setlist +// #. +$keyrune_version: '1.8.0' !default; +$keyrune_font_path: '../fonts' !default; + +// #. Keyrune Font ============================== // +$keyrune_font_style: normal !default; +$keyrune_font_variant: normal !default; +$keyrune_font_weight: normal !default; +$keyrune_font_size: 14px !default; +$keyrune_font_face: 'Keyrune' !default; +$keyrune_font: $keyrune_font_style $keyrune_font_variant $keyrune_font_weight $keyrune_font_size/1 $keyrune_font_face !default; -// 1. Global =================================== -// -$global_font_path: '../fonts' !default; -$global_font_size: 14px !default; +$keyrune_prefix: 'ss' !default; -// 2. Keyrune ================================== -// -$keyrune_font_face: "Keyrune" !default; -$keyrune_version: '1.7.2' !default; -$keyrune_prefix: 'ss' !default; -$keyrune_font_weight: normal !default; -$keyrune_font_style: normal !default; +$keyrune_default_content: "\e684" !default; -// 3. Set Symbol =============================== -// -$setsymbol_display: inline-block !default; -$setsymbol_font: normal normal normal $global_font_size/1 $keyrune_font_face !default; -$setsymbol_font_size: inherit !default; -$setsymbol_line_height: 1em !default; -$setsymbol_text_rendering: auto !default; -$setsymbol_transform: translate(0, 0) !default; -$setsymbol_speak: none !default; -$setsymbol_text_transform: none !default; -$setsymbol_vertical_align: middle !default; -$setsymbol_webkit_font_smoothing: antialiased !default; -$setsymbol_moz_font_smoothing: grayscale !default; -$setsymbol_default_content: "\e684" !default; - -$setsymbol_color_stop1: 0% !default; -$setsymbol_color_stop2: 50% !default; -$setsymbol_color_stop3: 100% !default; -$setsymbol_text_stroke: 0.03em !default; -$setsymbol_text_fill_color: transparent !default; -$setsymbol_background_clip: text !default; +$keyrune_background_clip: text !default; +$keyrune_text_fill: transparent !default; // 4. Keyrune Colors ============================ // -$rarity_palette: ( +$black: #000 !default; +$white: #fff !default; + +$keyrune_palette: ( ('common', #1a1718, #302b2c, #474040, #000), ('uncommon', #707883, #5a6572, #9e9e9e, #111), ('rare', #a58e4a, #876a3b, #dfbd6b, #333), ('mythic', #bf4427, #b21f0f, #f38300, #333) ) !default; -$white: #fff; - -// 5. Helpers ================================== +// #. Set Symbol Sizes =============================== // -$setsymbol_sizes: ( +$keyrune_sizes: ( '2x': 2em, '3x': 3em, '4x': 4em, '5x': 5em, - '6x': 6em + '6x': 6em, + 'fw': calc(18em / #{$keyrune_font_size}) ) !default; -$setsymbol_fixed_size_width: calc(18em / 14px) !default; // TODO: might have to light into implementing a units component. perhaps switch to -$setsymbol_fixed_size_text_align: center !default; - -$setsymbol_no_border: 0 !default; - -$setsymbol_border_after_content: "" !default; -$setsymbol_border_after_position: absolute !default; -$setsymbol_border_after_left: -.05em !default; // TODO: change to -0.05em if doesn't effect visual styles. -$setsymbol_border_after_top: .0em !default; // TODO: change to 0.0em " -$setsymbol_border_after_z_index: -1 !default; -$setsymbol_border_after_color: $white !default; -$setsymbol_border_after_font_size: 1.15em !default; -$setsymbol_border_after_background: $white !default; -$setsymbol_border_after_text_stroke: 0.05em $white !default; -$setsymbol_border_after_background_clip: $setsymbol_background_clip !default; -$setsymbol_border_after_text_fill_color: $setsymbol_text_fill_color !default; - -// not really sure what to call this array, although I notice it is for special borders. +// NOTE: not really sure what to call this array. I notice it is for special borders of sorts, so setlist_borders it is. $mtg_setlist_borders: ( ("Vanguard", 'van', "\e655"), ("Archenemy", 'arc', "\e657"), @@ -94,13 +55,14 @@ $mtg_setlist_borders: ( ("Planechase 2009", 'hop', "\e656"), ("Planechase 2012", 'pc2', "\e659"), ("Conspiracy", 'cns', "\e65c") -); +) !default; // 6. MtG Setlist ============================== -// Legend: -// (Set_Name, Set_Code, Set_Glyph) +// Legend/Key: +// ("Set_Name", 'Set_Code', "Set_Glyph"), // $mtg_setlist: ( + // # Core Sets ("Alpha", 'lea', "\e600"), ("Beta", 'leb', "\e601"), ("Unlimited", '2ed', "\e602"), @@ -121,79 +83,109 @@ $mtg_setlist: ( ("Magic 2015", 'm15', "\e611"), ("Core background", 'bcore', "\e612"), ("Magic Origins", 'ori', "\e697"), + // # Expansion Sets + // Artifact block ("Arabian Nights", 'arn', "\e613"), ("Antiquities", 'atq', "\e614"), ("Legends", 'leg', "\e615"), + // Wizards block ("The Dark", 'drk', "\e616"), ("Fallen Empires", 'fem', "\e617"), ("Homelands", 'hml', "\e618"), + // Ice Age block ("Ice Age", 'ice', "\e619"), ("Alliances", 'all', "\e61a"), ("Coldsnap", 'csp', "\e61b"), + // Mirage block ("Mirage", 'mir', "\e61c"), ("Visions", 'vis', "\e61d"), ("Weatherlight", 'wth', "\e61e"), + // Tempest block ("Tempest", 'tmp', "\e61f"), ("Stronghold", 'sth', "\e620"), ("Exodus", 'exo', "\e621"), + // Urza's block ("Urza's Saga", 'usg', "\e622"), ("Urza's Legacy", 'ulg', "\e623"), ("Urza's Destiny", 'uds', "\e624"), + // Mercadian block ("Mercadian Masque", 'mmq', "\e625"), ("Nemesis", 'nms', "\e626"), ("Prophecy", 'pcy', "\e627"), + // Invasion block ("Invasion", 'inv', "\e628"), ("Planeshift", 'pls', "\e629"), ("Apocalypse", 'apc', "\e62a"), + // Odyssey block ("Odyssey", 'ody', "\e62b"), ("Torment", 'tor', "\e62c"), ("Judgement", 'jud', "\e62d"), + // Onslaught block ("Onslaught", 'ons', "\e62e"), ("Legions", 'lgn', "\e62f"), ("Scourge", 'scg', "\e630"), + // Mirrodin block ("Mirrodin", 'mrd', "\e631"), ("Darksteel", 'dst', "\e632"), ("5th Dawn", '5dn', "\e633"), - ("Champions of", 'chk', "\e634"), - ("Betrayers of", 'bok', "\e635"), + // Kamigawa block + ("Champions of Kamigawa", 'chk', "\e634"), + ("Betrayers of Kamigawa", 'bok', "\e635"), ("Saviors of Kamigawa", 'sok', "\e636"), + // Ravnica block ("Ravnica", 'rav', "\e637"), ("Guildpact", 'gpt', "\e638"), ("Dissension", 'dis', "\e639"), + // Time Spiral block ("Time Spiral", 'tsp', "\e63a"), ("Planeshift", 'plc', "\e63b"), ("Future Sight", 'fut', "\e63c"), + // Lorwyn block ("Lorwyn", 'lrw', "\e63d"), ("Morningtide", 'mor', "\e63e"), + // Shadowmoor block ("Shadowmoor", 'shm', "\e63f"), ("Eventide", 'eve', "\e640"), + // Alara block ("Shards of Alara", 'ala', "\e641"), ("Conflux", 'con', "\e642"), ("Alara Reborn", 'arb', "\e643"), + // Zendikar block ("Zendikar", 'zen', "\e644"), ("Worldwake", 'wwk', "\e645"), ("Rise of Eldrazi", 'roe', "\e646"), + // Scars block ("Scars of Mirrodin", 'som', "\e647"), ("Mirrodin Besieged", 'mbs', "\e648"), ("New Phyrexia", 'nph', "\e649"), + // Innistrad block ("Innistrad", 'isd', "\e64a"), ("Dark Ascension", 'dka', "\e64b"), ("Avacyn Restored", 'avr', "\e64c"), + // Return to Ravnica block ("Return to Ravnica", 'rtr', "\e64d"), ("Gatecrash", 'gtc', "\e64e"), ("Dragon's Maze", 'dgm', "\e64f"), + // Theros block ("Theros", 'ths', "\e650"), ("Born of the Gods", 'bng', "\e651"), ("Journey into Nyx", 'jou', "\e652"), + // Khans block ("Khans of Tarkir", 'ktk', "\e653"), ("Fate Reforged", 'frf', "\e654"), ("Dragons of Tarkir", 'dtk', "\e693"), + // Return to Zendikar block ("Battle for Zendikar", 'bfz', "\e699"), - ("Oath of the", 'ogw', "\e901"), - ("Shadows Over", 'soi', "\e902"), + ("Oath of the Gatewatch", 'ogw', "\e901"), + // Return to Innistrad block + ("Shadows Over Innistrad", 'soi', "\e902"), ("Eldritch Moon", 'emn', "\e90b"), + // Kaladesh block ("Kaladesh", 'kld', "\e90e"), ("Aether Revolt", 'aer', "\e90f"), + // Amonkhet block + ("Amonkhet", "akh", "\e914"), + // # Commander Sets ("Vanguard", 'van', "\e655"), ("Planechase 2009", 'hop', "\e656"), ("Archenemy", 'arc', "\e657"), @@ -207,6 +199,7 @@ $mtg_setlist: ( ("Conspiracy 2, Take", 'cn2', "\e904"), ("Commander 2016", 'c16', "\e910"), ("Planechase", 'pca', "\e911"), + // # Reprint Sets ("Chronicles", 'chr', "\e65e"), ("Anthologies", 'ath', "\e65f"), ("Battle Royale", 'brb', "\e660"), @@ -216,12 +209,14 @@ $mtg_setlist: ( ("Modern Masters 2015", 'mm2', "\e695"), ("Eternal Masters", 'ema', "\e903"), ("Modern Masters 2017", 'mm3', "\e912"), + // # Beginner Sets ("Portal", 'por', "\e664"), ("Portal 2", 'po2', "\e665"), ("Portal 3 Kingdoms", 'ptk', "\e666"), ("Starter 1999", 's99', "\e667"), ("Starter 2000", 's00', "\e668"), ("Welcome Deck 2016", 'w16', "\e907"), + // # Duel Decks ("Elves vs. Goblins", 'evg', "\e669"), ("Jace vs. Chandra", 'dd2', "\e66a"), ("Divine vs. Demonic", 'ddc', "\e66b"), @@ -240,6 +235,7 @@ $mtg_setlist: ( ("Zendikar vs.", 'ddp', "\e698"), ("Blessed vs. Cursed", 'ddq', "\e908"), ("Nissa vs. Ob", 'ddr', "\e90d"), + // # From the Vault ("Dragons", 'drb', "\e678"), ("Exiled", 'v09', "\e679"), ("Relics", 'v10', "\e67a"), @@ -249,10 +245,12 @@ $mtg_setlist: ( ("Annihilation", 'v14', "\e67e"), ("Angels", 'v15', "\e905"), ("Lore", 'v16', "\e906"), + // # Premium Deck Series ("Slivers", 'h09', "\e67f"), ("Fire & Lightning", 'pd2', "\e680"), ("Graveborn", 'pd3', "\e681"), ("Modern Event Deck", 'md1', "\e682"), + // # Promotional ("Guru", 'pgru', "\e683"), ("Magic symbol", 'pmtg1', "\e684"), ("Magic symbol", 'pmtg2', "\e685"), @@ -267,6 +265,7 @@ $mtg_setlist: ( ("Salvat 2005", 'psalvat05', "\e909"), ("Salvat 2011", 'psalvat11', "\e90a"), ("Masterpieces,", 'mp1', "\e913"), + // # Online Only ("Masters Edition", 'med', "\e68d"), ("Masters Edition II", 'me2', "\e68e"), ("Masters Edition III", 'me3', "\e68f"), @@ -274,6 +273,7 @@ $mtg_setlist: ( ("Tempest Remastered", 'tpr', "\e694"), ("Vintage Masters", 'vma', "\e696"), ("Legendary Cube", 'xlcu', "\e90c"), + // # The Unsets ("Unglued", 'ugl', "\e691"), ("Unhinged", 'unh', "\e692") ) !default; diff --git a/sass/keyrune.scss b/sass/keyrune.scss index 069cb19..de7d1a4 100644 --- a/sass/keyrune.scss +++ b/sass/keyrune.scss @@ -3,7 +3,6 @@ // Config ====================================== // @import 'variables'; -//@import 'settings'; // used for other users to overwrite default styles. // Components ================================== // From 41e0a129829099a8a2073bc60c91c38e45416bd1 Mon Sep 17 00:00:00 2001 From: jordanbrauer Date: Tue, 13 Dec 2016 22:01:21 -0600 Subject: [PATCH 21/21] Pulled in updated version, removing gulp dependencies. --- package.json | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index f792986..260ad01 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "keyrune", "description": "Keyrune", - "version": "1.7.2", + "version": "1.8.0", "author": { "name": "Andrew Gioia", "email": "andrewgioia@gmail.com", @@ -19,17 +19,7 @@ "keywords": [], "homepage": "http://andrewgioia.com", "dependencies": {}, - "devDependencies": { - "del": "^2.2.1", - "gulp": "^3.9.1", - "gulp-autoprefixer": "^3.1.0", - "gulp-cssnano": "^2.1.2", - "gulp-notify": "^2.2.0", - "gulp-rename": "^1.2.2", - "gulp-sass": "^2.3.2", - "merge": "^1.2.0", - "run-sequence": "^1.2.2" - }, + "devDependencies": {}, "license": "(OFL-1.1 AND MIT)", "main": "css/keyrune.css", "ignore": [