├── .nvmrc ├── themes └── meteor │ ├── _config.yaml │ ├── source │ ├── style │ │ ├── _global │ │ │ ├── panel.less │ │ │ ├── Radio.less │ │ │ ├── mobile.less │ │ │ ├── Textarea.less │ │ │ ├── Checkbox.less │ │ │ ├── link.less │ │ │ ├── base.less │ │ │ ├── syntax.less │ │ │ ├── animation.less │ │ │ ├── nav.less │ │ │ ├── form.less │ │ │ ├── Input.less │ │ │ ├── Select.less │ │ │ ├── formatting.less │ │ │ └── icon.less │ │ ├── _util │ │ │ ├── easing.import.less │ │ │ ├── link.import.less │ │ │ ├── clearfix.import.less │ │ │ ├── helper.import.less │ │ │ ├── index.import.less │ │ │ ├── text.import.less │ │ │ ├── scrollbar.import.less │ │ │ ├── color.import.less │ │ │ ├── ui.import.less │ │ │ └── typography.import.less │ │ ├── _theme │ │ │ ├── panel.less │ │ │ ├── nav.less │ │ │ ├── sidebar.less │ │ │ ├── layout.less │ │ │ └── content.less │ │ └── style.less │ ├── images │ │ ├── logo.png │ │ ├── OSXsmall.png │ │ ├── favicon.png │ │ ├── tuxSmall.png │ │ ├── windowsSmall.png │ │ ├── icon-white.svg │ │ └── logo-coralspace-left.svg │ ├── fonts │ │ ├── percolate.eot │ │ ├── percolate.ttf │ │ └── percolate.woff │ └── script │ │ ├── smooth-scroll.min.js │ │ └── main.js │ └── layout │ ├── partials │ ├── illustration-help.ejs │ ├── illustration-logs.ejs │ ├── illustration-compass.ejs │ ├── illustration-support.ejs │ ├── sidebar.ejs │ ├── illustration-guide.ejs │ └── illustration-github.ejs │ ├── page.ejs │ └── layout.ejs ├── .gitignore ├── assets ├── theme-colors.less └── api-box.html ├── README.md ├── scripts ├── parseTagOptions.js └── dl.js ├── circle.yml ├── package.json ├── source ├── chapters │ ├── 1 │ │ ├── conclusion.md │ │ ├── reactivity.md │ │ ├── methods.md │ │ ├── security.md │ │ ├── pubsub.md │ │ ├── collections.md │ │ ├── users.md │ │ ├── intro.md │ │ └── meteorSnacks.md │ ├── 2 │ │ ├── conclusion.md │ │ ├── intro.md │ │ ├── react.md │ │ └── css.md │ └── 3 │ │ ├── conclusion.md │ │ ├── fixtures.md │ │ ├── publications.md │ │ ├── testing.md │ │ ├── reusable-modules.md │ │ ├── static-type-checking.md │ │ ├── linting.md │ │ ├── emails.md │ │ ├── structure.md │ │ ├── microservices.md │ │ └── methods.md └── index.md ├── Contributing.md └── _config.yml /.nvmrc: -------------------------------------------------------------------------------- 1 | v8.16.1 2 | -------------------------------------------------------------------------------- /themes/meteor/_config.yaml: -------------------------------------------------------------------------------- 1 | config: 2 | -------------------------------------------------------------------------------- /themes/meteor/source/style/_global/panel.less: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | node_modules 3 | npm-debug.log 4 | deploy.sh 5 | /public 6 | db.json -------------------------------------------------------------------------------- /assets/theme-colors.less: -------------------------------------------------------------------------------- 1 | // Haven't made any changes as we want the default Meteor colors 2 | -------------------------------------------------------------------------------- /themes/meteor/source/style/_util/easing.import.less: -------------------------------------------------------------------------------- 1 | @easing: cubic-bezier(0.175, 0.885, 0.335, 1.05); 2 | -------------------------------------------------------------------------------- /themes/meteor/source/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cult-of-coders/meteor-tuts/HEAD/themes/meteor/source/images/logo.png -------------------------------------------------------------------------------- /themes/meteor/source/fonts/percolate.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cult-of-coders/meteor-tuts/HEAD/themes/meteor/source/fonts/percolate.eot -------------------------------------------------------------------------------- /themes/meteor/source/fonts/percolate.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cult-of-coders/meteor-tuts/HEAD/themes/meteor/source/fonts/percolate.ttf -------------------------------------------------------------------------------- /themes/meteor/source/images/OSXsmall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cult-of-coders/meteor-tuts/HEAD/themes/meteor/source/images/OSXsmall.png -------------------------------------------------------------------------------- /themes/meteor/source/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cult-of-coders/meteor-tuts/HEAD/themes/meteor/source/images/favicon.png -------------------------------------------------------------------------------- /themes/meteor/source/images/tuxSmall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cult-of-coders/meteor-tuts/HEAD/themes/meteor/source/images/tuxSmall.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Meteor Tuts - http://www.meteor-tuts.com 2 | 3 | This package has been cloned from: 4 | https://github.com/meteor/docs 5 | 6 | 7 | -------------------------------------------------------------------------------- /themes/meteor/source/fonts/percolate.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cult-of-coders/meteor-tuts/HEAD/themes/meteor/source/fonts/percolate.woff -------------------------------------------------------------------------------- /themes/meteor/source/images/windowsSmall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cult-of-coders/meteor-tuts/HEAD/themes/meteor/source/images/windowsSmall.png -------------------------------------------------------------------------------- /themes/meteor/source/style/_util/link.import.less: -------------------------------------------------------------------------------- 1 | .link(@color) { 2 | color: @color; 3 | &:link, 4 | &:visited { color: @color; } 5 | &:active { color: darken(@color, 5%); } 6 | } 7 | -------------------------------------------------------------------------------- /themes/meteor/source/style/_global/Radio.less: -------------------------------------------------------------------------------- 1 | @import "../_util/index.import.less"; 2 | @import "Checkbox.less"; 3 | 4 | label.radio { 5 | &:extend(label.checkbox all); 6 | 7 | input[type="radio"] + span:before, 8 | input[type="radio"] + span:after { border-radius: 1em; } 9 | } 10 | -------------------------------------------------------------------------------- /themes/meteor/source/style/_util/clearfix.import.less: -------------------------------------------------------------------------------- 1 | // Modern Clearfix 2 | // Modified from http://nicolasgallagher.com/micro-clearfix-hack/ 3 | .clearfix() { 4 | *zoom: 1; 5 | 6 | &:after { 7 | clear: both; 8 | content: " "; /* 1 */ 9 | display: table; /* 2 */ 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /themes/meteor/source/style/_util/helper.import.less: -------------------------------------------------------------------------------- 1 | .position(@type; @top: auto; @right: auto; @bottom: auto; @left: auto; @width: auto; @height: auto) { 2 | position: @type; 3 | top: @top; 4 | right: @right; 5 | bottom: @bottom; 6 | left: @left; 7 | width: @width; 8 | height: @height; 9 | } 10 | -------------------------------------------------------------------------------- /themes/meteor/source/style/_global/mobile.less: -------------------------------------------------------------------------------- 1 | // Show only on desktop 2 | .show-mobile { 3 | @media screen and (min-width: @breakpoint) { 4 | display: none !important; 5 | } 6 | } 7 | 8 | 9 | // Show only on desktop 10 | .show-desktop { 11 | @media screen and (max-width: (@breakpoint - 1px)) { 12 | display: none !important; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /scripts/parseTagOptions.js: -------------------------------------------------------------------------------- 1 | // sort of hacky but allows x:y 2 | module.exports = function(args) { 3 | if (args.length === 0) { 4 | return {}; 5 | } 6 | var argsJson = '{"' + args.join('","').replace(/:/g, '":"') + '"}'; 7 | try { 8 | return JSON.parse(argsJson); 9 | } catch (e) { 10 | console.error(args, argsJson); 11 | throw new Error("Couldn't parse arguments"); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /themes/meteor/source/style/_util/index.import.less: -------------------------------------------------------------------------------- 1 | // Normalize.import.less is imported separately 2 | 3 | @import 'clearfix.import.less'; 4 | @import 'color.import.less'; 5 | @import 'easing.import.less'; 6 | @import 'helper.import.less'; 7 | @import 'lesshat.import.less'; 8 | @import 'link.import.less'; 9 | @import 'scrollbar.import.less'; 10 | @import 'text.import.less'; 11 | @import 'typography.import.less'; 12 | @import 'ui.import.less'; 13 | -------------------------------------------------------------------------------- /circle.yml: -------------------------------------------------------------------------------- 1 | machine: 2 | node: 3 | version: 0.12 4 | 5 | checkout: 6 | post: 7 | - git submodule update --init 8 | 9 | dependencies: 10 | cache_directories: 11 | - "node_modules" 12 | override: 13 | - npm install -g hexo-cli 14 | - npm install 15 | 16 | test: 17 | override: 18 | # maybe we will need tests in the future 19 | - echo 'ok!' 20 | 21 | deployment: 22 | s3: 23 | branch: /^(master|version-.*)/ 24 | commands: 25 | - npm run deploy 26 | -------------------------------------------------------------------------------- /themes/meteor/source/style/_util/text.import.less: -------------------------------------------------------------------------------- 1 | .subheading-caps() { 2 | .type-bold; 3 | letter-spacing: .35em; 4 | text-transform: uppercase; 5 | } 6 | 7 | .subheading-caps(center) { 8 | .subheading-caps(); 9 | text-indent: .35em; 10 | } 11 | 12 | .ellipsized() { 13 | overflow: hidden; 14 | text-overflow: ellipsis; 15 | white-space: nowrap; 16 | } 17 | 18 | .force-wrap() { 19 | word-wrap: break-word; 20 | word-break: break-all; 21 | -ms-word-break: break-all; 22 | word-break: break-word; 23 | 24 | .hyphens(auto); 25 | } 26 | -------------------------------------------------------------------------------- /themes/meteor/source/style/_theme/panel.less: -------------------------------------------------------------------------------- 1 | .panel { 2 | @media screen and (min-width: @breakpoint) { display: none; } 3 | 4 | .panel-item { 5 | .std-xpadding; 6 | .font-s2; 7 | .type-semibold; 8 | display: block; 9 | padding-top: .5rem; 10 | padding-bottom: .5rem; 11 | position: relative; 12 | 13 | &.active, 14 | &:hover { 15 | background: @color-primary; 16 | 17 | a { .link(@color-lightest); } 18 | 19 | &:before { 20 | .transform(scale3d(1,1,1)); 21 | background: @color-primary; 22 | } 23 | } 24 | 25 | a { 26 | .link(@color-dark); 27 | .type-semibold; 28 | display: block; 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /scripts/dl.js: -------------------------------------------------------------------------------- 1 | /* global hexo */ 2 | 3 | var parseTagOptions = require('./parseTagOptions'); 4 | 5 | hexo.extend.tag.register('dtdd', function(args, content) { 6 | var options = parseTagOptions(args); 7 | 8 | var typespan = ''; 9 | if (options.type) { 10 | typespan = '' + options.type + ''; 11 | } 12 | 13 | var idstr = ''; 14 | if (options.id) { 15 | idstr = 'id="' + options.id + '"'; 16 | } 17 | var namespan = '' + options.name + ''; 18 | 19 | return hexo.render.render({text: content, engine: 'md'}) 20 | .then(function(markdownContent) { 21 | return '
| {headerText} | 105 |
| {children} | 108 |
53 | ├── client 54 | │ ├── styles 55 | │ │ ├── cc-app.scss // Main file where we import all the other scss files 56 | │ │ └── _helpers // in this folder we add all files for variables, functions, mixins 57 | | │ │ └── _functions.scss // functions that we use in mixins 58 | | │ │ └── _helpers.scss // general rules all over the website 59 | | │ │ └── _mixins.scss // a group of declarations that you want to re-use 60 | | │ │ └── _variables.scss 61 | │ │ └── base 62 | | │ │ └── _normalize.scss // css reset for the browser 63 | | │ │ └── _font.scss // rules for importing external fonts 64 | | │ │ └── _general.scss // general rules for elements (html, body, links, a, etc) 65 | │ │ └── elements 66 | | │ │ └── grid.scss 67 | │ │ └── form 68 | | │ │ └── _button.scss 69 | | │ │ └── _checkbox.scss 70 | | │ │ └── _radio.scss 71 | | │ │ └── _text.scss 72 | | │ │ └── _textarea.scss 73 | | │ │ └── _select.scss 74 | | │ │ └── _form-helpers.scss 75 | │ │ └── layout 76 | | │ │ └── header 77 | | │ │ └── footer 78 | | │ │ └── main 79 | │ │ └── pages // a folder in which we add the css files for each page of application 80 | │ │ └── plugins // // in this folder we add the files from our external components that we use in the app 81 | │ ├── ... 82 | ├── imports 83 | │ ├── ... 84 | └── server 85 | └── ... 86 |87 | 88 | You can find a pre-installed meteor project with this folder structure, [here](https://github.com/cult-of-coders/meteor-tuts-boilerplate) 89 | 90 | 91 | ## Use of Flexbox 92 | To structure our layout model, we are using CSS3 Flexbile Box because it solves some problems that the layout float model have: 93 | - vertical and horizontal centering 94 | - same height columns 95 | 96 | You can learn more about it, [here](https://css-tricks.com/snippets/css/a-guide-to-flexbox/) 97 | 98 | ## Use of Rem for font size 99 | We are using rem size for our fonts because it offers responsiveness, scalability, improved reading experience, and greater flexibility in defining components. To read more about it, click [here](https://www.sitepoint.com/understanding-and-using-rem-units-in-css/) 100 | 101 | ## Writing clean css 102 | It is extremely important to write clean css code so that we have some recommendations for you: 103 | - When you create an application, prefix your classes with something specific and short. For example, we chose for our company "cc" (Cult of Coders). The reason behind it is that if we get an external library, we won't any have any conflicts 104 | - Use 3 or less levels of css nesting. Most of the time you don't need more than one level because if you want to override those styles only on a specific elements, you don't have to recreate the whole nesting levels 105 | - Using !important in your CSS usually means you're narcissistic & selfish or lazy. Respect the devs to come and don't use it! 106 | - For each component (or page / section) create a separate file in which you'll store only the specific styles for that section. This will make the code much cleaner, offering better readability and very easy to modify later 107 | - Naming standard convention. Our current recommendation is [BEM](http://getbem.com/naming/) 108 | - Be specific in naming your classes. The class names should represent your elements 109 | 110 | ```scss 111 | /* BAD */ 112 | .box { 113 | background-color: green !important; 114 | .box2 { 115 | .cc-box3 { 116 | font-size: 5px; 117 | .cc-button-x { 118 | color: red; 119 | } 120 | } 121 | } 122 | } 123 | .cc-div {} 124 | ``` 125 | 126 | ```scss 127 | /* GOOD */ 128 | .cc-donut { 129 | &--bg-main{ 130 | background-color: $color-main; 131 | color: $color-white; 132 | } 133 | } 134 | .cc-donuts-list { 135 | height: 100%; 136 | display: flex; 137 | 138 | &__title { 139 | @include font-size(16px); 140 | } 141 | } 142 | ``` 143 | 144 | ## Use of Variables 145 | Variables are simply amazing because you can store some general rules that you want to apply in your stylesheet. 146 | 147 | ```scss 148 | $font-roboto: 'Roboto', sans-serif; 149 | $base-font-size: 62.5%; 150 | $color-success: #4CAF50; 151 | $shadow-dp0: 0px 0px 0px 0px rgba(black, 0.2), 0px 0px 0px 0px rgba(black, 0.14), 0px 0px 0px 0px rgba(black, 0.12); 152 | 153 | /* How to use them? */ 154 | .cc-donuts-list { 155 | font-family: $font-roboto; 156 | color: $color-success; 157 | box-shadow: $shadow-dp0; 158 | } 159 | ``` 160 | 161 | ## Use of mixins 162 | A mixin lets you make groups of CSS declarations that you want to reuse throughout your site 163 | ```scss 164 | @mixin breakpoint ($value, $min-value: false) { 165 | @if $value == 'phone-small' { 166 | @media only screen and (max-width : 330px) { @content; } 167 | } 168 | 169 | @if $value == 'phone' { 170 | @media only screen and (max-width : 750px) { @content; } 171 | } 172 | 173 | @else if $value == 'tablet' { 174 | @media only screen and (min-width: 751px) and (max-width: 1199px) { @content } 175 | } 176 | 177 | @else if $value == 'desktop' { 178 | @media only screen and (min-width: 1601px) { @content } 179 | } 180 | 181 | @else { 182 | @media only screen and (max-width: $value) { @content; } 183 | } 184 | } 185 | 186 | /* How to use it? */ 187 | .cc-notification { 188 | @include breakpoint("tablet") { 189 | font-size: 50px; 190 | } 191 | } 192 | 193 | ``` 194 | ## Homework 195 | 196 | #### 1. Donut colors 197 | Style the section where we display the donuts. Add to each element from the section, a specific class. Each type of donut, will have a different color. 198 | 199 | #### 2. Responsive donuts 200 | The creation of a donut needs to be responsive so we can add it from each device we would like 201 | -------------------------------------------------------------------------------- /themes/meteor/layout/layout.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Hello!
" 116 | }); 117 | ``` 118 | 119 | If you're interested to learn more about communicating with your users from your Meteor-based application, 120 | you can read more [here](http://docs.meteor.com/api/email.html). 121 | 122 | ## Meteor.defer 123 | 124 | Sometimes, when you want to do something, and notify the user by email afterwards. However, if you use SMTP, sometimes 125 | it can take between 50ms to 1s for the mail to be sent, and this can give the user the impression that your application is slow. 126 | This is why you should use this function: 127 | 128 | ```js 129 | Meteor.methods({ 130 | 'action_plus_email': function () { 131 | // do something 132 | 133 | Meteor.defer(() => { 134 | Email.send(...) 135 | }) 136 | 137 | return 'hello there, user'; 138 | } 139 | }) 140 | ``` 141 | 142 | _Meteor.defer(fn)_ is same as _Meteor.setTimeout(fn, 0)_. 143 | Basically, _Meteor.defer(fn)_ will do a "background" job in a fiber (asynchronously...get it ? ). 144 | 145 | ## HTTP 146 | 147 | Picture a hungry developer that sits down at a table in the "Meteor restaurant": 148 | 149 | "-I'd like an external REST API please. 150 | -Coming right up!" 151 | 152 | This is how a conversation between the "hungry" developer and the Meteor "waiter" would look like, if the developer wanted to have a [REST API](https://www.youtube.com/watch?time_continue=1&v=llpr5924N7E). 153 | For that, Meteor has a simple [HTTP](http://docs.meteor.com/api/http.html) package built-in. 154 | 155 | ```js 156 | Meteor.methods({ 157 | an_api_call: function() { 158 | const data = HTTP.get("https://jsonplaceholder.typicode.com/posts/1"); 159 | 160 | console.log(data); 161 | 162 | return data; 163 | } 164 | }); 165 | ``` 166 | 167 | ## Assets 168 | 169 | The best documentation for assets is available [here](http://docs.meteor.com/api/assets.html), at the official Meteor website! 170 | 171 | Let's go ahead and put something in "/private/some_folder/test.txt" by running this in our Meteor shell: 172 | 173 | ``` 174 | Assets.getText('/some_folder/test.txt') 175 | ``` 176 | 177 | You would use this when, for example, you have a business, logic-packed csv, or an .xls file that you need to work with. 178 | Or you may have a JSON with car models. 179 | The idea is that you can use any type of file, even binary, that you can use privately on the server where the application is deployed on. 180 | 181 | ## Meteor Settings 182 | 183 | Again, the developers at [Meteor](https://docs.meteor.com/api/core.html#Meteor-settings) explain this subject in the best way. 184 | Use this code in your _.deploy/local.json_ file: 185 | 186 | ```json 187 | { 188 | "public": { 189 | "visible": "Something that the client can see" 190 | }, 191 | "private": { 192 | "API_KEY": "XYZ" 193 | } 194 | } 195 | ``` 196 | 197 | You can access the settings from the client-side with: 198 | 199 | ``` 200 | Meteor.settings.public.visible 201 | ``` 202 | 203 | Or you can access all of the settings from the server-side by using: 204 | 205 | ``` 206 | Meteor.settings.private.API_KEY 207 | ``` 208 | 209 | ## Running Meteor - the easy way 210 | 211 | Inside your "Meteor" folder you have a file named "package.json". That packages keeps track of what npm packages you use, and other 212 | information about your system setup. So, for example, you may start an app with different settings than the ones you developed it with on your workstation. 213 | To restore those settings, you would use something like this: 214 | 215 | ```json 216 | { 217 | ... 218 | "scripts": { 219 | "start": "MAIL_URL='xxx' meteor run --port 3000", 220 | "deploy": "We'll get into that in another chapter ;)" 221 | } 222 | } 223 | ``` 224 | 225 | Now run this in your terminal: 226 | 227 | ``` 228 | npm run start 229 | ``` 230 | 231 | and you should be okay to start your application! 232 | -------------------------------------------------------------------------------- /themes/meteor/source/style/_global/icon.less: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'percolate'; 3 | src: url('../fonts/percolate.eot?rxvase'); 4 | src: url('../fonts/percolate.eot?rxvase#iefix') format('embedded-opentype'), 5 | url('../fonts/percolate.ttf?rxvase') format('truetype'), 6 | url('../fonts/percolate.woff?rxvase') format('woff'), 7 | url('../fonts/percolate.svg?rxvase#percolate') format('svg'); 8 | font-weight: normal; 9 | font-style: normal; 10 | } 11 | 12 | [class^="icon-"], [class*=" icon-"] { 13 | /* use !important to prevent issues with browser extensions that change fonts */ 14 | font-family: 'percolate' !important; 15 | speak: none; 16 | font-style: normal; 17 | font-weight: normal; 18 | font-variant: normal; 19 | text-transform: none; 20 | line-height: 1; 21 | 22 | /* Better Font Rendering =========== */ 23 | -webkit-font-smoothing: antialiased; 24 | -moz-osx-font-smoothing: grayscale; 25 | } 26 | 27 | .icon-grow:before { 28 | content: "\e903"; 29 | } 30 | .icon-lightning:before { 31 | content: "\e904"; 32 | } 33 | .icon-request-change:before { 34 | content: "\e905"; 35 | } 36 | .icon-transfer:before { 37 | content: "\e906"; 38 | } 39 | .icon-calendar:before { 40 | content: "\e902"; 41 | } 42 | .icon-sidebar:before { 43 | content: "\e900"; 44 | } 45 | .icon-tablet:before { 46 | content: "\e901"; 47 | } 48 | .icon-atmosphere:before { 49 | content: "\e671"; 50 | } 51 | .icon-browser:before { 52 | content: "\e672"; 53 | } 54 | .icon-database:before { 55 | content: "\e673"; 56 | } 57 | .icon-expand-alt:before { 58 | content: "\e674"; 59 | } 60 | .icon-mobile:before { 61 | content: "\e675"; 62 | } 63 | .icon-watch:before { 64 | content: "\e676"; 65 | } 66 | .icon-home:before { 67 | content: "\e600"; 68 | } 69 | .icon-user-alt:before { 70 | content: "\e601"; 71 | } 72 | .icon-user:before { 73 | content: "\e602"; 74 | } 75 | .icon-user-add:before { 76 | content: "\e603"; 77 | } 78 | .icon-users:before { 79 | content: "\e604"; 80 | } 81 | .icon-profile:before { 82 | content: "\e605"; 83 | } 84 | .icon-bookmark:before { 85 | content: "\e606"; 86 | } 87 | .icon-bookmark-hollow:before { 88 | content: "\e607"; 89 | } 90 | .icon-star:before { 91 | content: "\e608"; 92 | } 93 | .icon-star-hollow:before { 94 | content: "\e609"; 95 | } 96 | .icon-circle:before { 97 | content: "\e60a"; 98 | } 99 | .icon-circle-hollow:before { 100 | content: "\e60b"; 101 | } 102 | .icon-heart:before { 103 | content: "\e60c"; 104 | } 105 | .icon-heart-hollow:before { 106 | content: "\e60d"; 107 | } 108 | .icon-face-happy:before { 109 | content: "\e60e"; 110 | } 111 | .icon-face-sad:before { 112 | content: "\e60f"; 113 | } 114 | .icon-face-neutral:before { 115 | content: "\e610"; 116 | } 117 | .icon-lock:before { 118 | content: "\e611"; 119 | } 120 | .icon-unlock:before { 121 | content: "\e612"; 122 | } 123 | .icon-key:before { 124 | content: "\e613"; 125 | } 126 | .icon-arrow-left-alt:before { 127 | content: "\e614"; 128 | } 129 | .icon-arrow-right-alt:before { 130 | content: "\e615"; 131 | } 132 | .icon-sync:before { 133 | content: "\e616"; 134 | } 135 | .icon-reply:before { 136 | content: "\e617"; 137 | } 138 | .icon-expand:before { 139 | content: "\e618"; 140 | } 141 | .icon-arrow-left:before { 142 | content: "\e619"; 143 | } 144 | .icon-arrow-up:before { 145 | content: "\e61a"; 146 | } 147 | .icon-arrow-down:before { 148 | content: "\e61b"; 149 | } 150 | .icon-arrow-right:before { 151 | content: "\e61c"; 152 | } 153 | .icon-chevron-down:before { 154 | content: "\e61d"; 155 | } 156 | .icon-back:before { 157 | content: "\e61e"; 158 | } 159 | .icon-download:before { 160 | content: "\e61f"; 161 | } 162 | .icon-upload:before { 163 | content: "\e620"; 164 | } 165 | .icon-proceed:before { 166 | content: "\e621"; 167 | } 168 | .icon-info:before { 169 | content: "\e622"; 170 | } 171 | .icon-question:before { 172 | content: "\e623"; 173 | } 174 | .icon-alert:before { 175 | content: "\e624"; 176 | } 177 | .icon-edit:before { 178 | content: "\e625"; 179 | } 180 | .icon-paintbrush:before { 181 | content: "\e626"; 182 | } 183 | .icon-close:before { 184 | content: "\e627"; 185 | } 186 | .icon-trash:before { 187 | content: "\e628"; 188 | } 189 | .icon-cross:before { 190 | content: "\e629"; 191 | } 192 | .icon-delete:before { 193 | content: "\e62a"; 194 | } 195 | .icon-power:before { 196 | content: "\e62b"; 197 | } 198 | .icon-add:before { 199 | content: "\e62c"; 200 | } 201 | .icon-plus:before { 202 | content: "\e62d"; 203 | } 204 | .icon-document:before { 205 | content: "\e62e"; 206 | } 207 | .icon-graph-line:before { 208 | content: "\e62f"; 209 | } 210 | .icon-doc-chart:before { 211 | content: "\e630"; 212 | } 213 | .icon-doc-list:before { 214 | content: "\e631"; 215 | } 216 | .icon-category:before { 217 | content: "\e632"; 218 | } 219 | .icon-copy:before { 220 | content: "\e633"; 221 | } 222 | .icon-book:before { 223 | content: "\e634"; 224 | } 225 | .icon-certificate:before { 226 | content: "\e636"; 227 | } 228 | .icon-print:before { 229 | content: "\e637"; 230 | } 231 | .icon-list-unordered:before { 232 | content: "\e638"; 233 | } 234 | .icon-graph-bar:before { 235 | content: "\e639"; 236 | } 237 | .icon-menu:before { 238 | content: "\e63a"; 239 | } 240 | .icon-filter:before { 241 | content: "\e63b"; 242 | } 243 | .icon-ellipsis:before { 244 | content: "\e63c"; 245 | } 246 | .icon-cog:before { 247 | content: "\e63d"; 248 | } 249 | .icon-wrench:before { 250 | content: "\e63e"; 251 | } 252 | .icon-nut:before { 253 | content: "\e63f"; 254 | } 255 | .icon-camera:before { 256 | content: "\e640"; 257 | } 258 | .icon-eye:before { 259 | content: "\e641"; 260 | } 261 | .icon-photo:before { 262 | content: "\e642"; 263 | } 264 | .icon-video:before { 265 | content: "\e643"; 266 | } 267 | .icon-speaker:before { 268 | content: "\e644"; 269 | } 270 | .icon-phone:before { 271 | content: "\e645"; 272 | } 273 | .icon-flag:before { 274 | content: "\e646"; 275 | } 276 | .icon-pin:before { 277 | content: "\e647"; 278 | } 279 | .icon-compass:before { 280 | content: "\e648"; 281 | } 282 | .icon-globe:before { 283 | content: "\e649"; 284 | } 285 | .icon-location:before { 286 | content: "\e64a"; 287 | } 288 | .icon-search:before { 289 | content: "\e64b"; 290 | } 291 | .icon-timer:before { 292 | content: "\e64c"; 293 | } 294 | .icon-time:before { 295 | content: "\e64d"; 296 | } 297 | .icon-dashboard:before { 298 | content: "\e64e"; 299 | } 300 | .icon-hourglass:before { 301 | content: "\e64f"; 302 | } 303 | .icon-play:before { 304 | content: "\e650"; 305 | } 306 | .icon-stop:before { 307 | content: "\e651"; 308 | } 309 | .icon-email:before { 310 | content: "\e652"; 311 | } 312 | .icon-comment:before { 313 | content: "\e653"; 314 | } 315 | .icon-link:before { 316 | content: "\e654"; 317 | } 318 | .icon-paperclip:before { 319 | content: "\e655"; 320 | } 321 | .icon-box:before { 322 | content: "\e656"; 323 | } 324 | .icon-structure:before { 325 | content: "\e657"; 326 | } 327 | .icon-commit:before { 328 | content: "\e658"; 329 | } 330 | .icon-cpu:before { 331 | content: "\e659"; 332 | } 333 | .icon-memory:before { 334 | content: "\e65a"; 335 | } 336 | .icon-outbox:before { 337 | content: "\e65b"; 338 | } 339 | .icon-share:before { 340 | content: "\e65c"; 341 | } 342 | .icon-button:before { 343 | content: "\e65d"; 344 | } 345 | .icon-check:before { 346 | content: "\e65e"; 347 | } 348 | .icon-form:before { 349 | content: "\e65f"; 350 | } 351 | .icon-admin:before { 352 | content: "\e660"; 353 | } 354 | .icon-paragraph:before { 355 | content: "\e661"; 356 | } 357 | .icon-bell:before { 358 | content: "\e662"; 359 | } 360 | .icon-rss:before { 361 | content: "\e663"; 362 | } 363 | .icon-basket:before { 364 | content: "\e664"; 365 | } 366 | .icon-credit:before { 367 | content: "\e665"; 368 | } 369 | .icon-support:before { 370 | content: "\e666"; 371 | } 372 | .icon-shield:before { 373 | content: "\e667"; 374 | } 375 | .icon-beaker:before { 376 | content: "\e668"; 377 | } 378 | .icon-google:before { 379 | content: "\e669"; 380 | } 381 | .icon-gdrive:before { 382 | content: "\e66a"; 383 | } 384 | .icon-youtube:before { 385 | content: "\e66b"; 386 | } 387 | .icon-facebook:before { 388 | content: "\e66c"; 389 | } 390 | .icon-thumbs-up:before { 391 | content: "\e66d"; 392 | } 393 | .icon-twitter:before { 394 | content: "\e66e"; 395 | } 396 | .icon-github:before { 397 | content: "\e66f"; 398 | } 399 | .icon-meteor:before { 400 | content: "\e670"; 401 | } 402 | --------------------------------------------------------------------------------