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; +}