This package integrates Semantic UI into Meteor and lets you configure what parts you need.
meteor add semantic:ui flemay:less-autoprefixer jquery
Continue to the Usage section.
meteor remove standard-minifier-css
meteor add semantic:ui juliancwirko:postcss less jquery
Add the following to package.json
{
"devDependencies": {
"autoprefixer": "^6.3.1"
},
"postcss": {
"plugins": {
"autoprefixer": {"browsers": ["last 2 versions"]}
}
}
}
After saving the changes to package.json
, run:
meteor npm install
- create an empty
custom.semantic.json
file within your client library folder. suggested location of/client/lib/semantic-ui/custom.semantic.json
depending on your applications structure - start meteor
- if you are happy with the default options for Semantic-UI, remove the newly generated
.custom.semantic.json
at this point - otherwise edit
custom.semantic.json
(which has now been populated) to select only the definitions and themes you want - save the file and it will generate Semantic UI
custom.semantic.json
is the most important file. If it is empty, semantic:ui
will generate the content with all the definitions and themes. By default, it sets to true all definitions and the theme "default".
{
"definitions": {
"accordion": true,
"ad": true,
"api": true,
...
},
"themes": {
"amazon": false,
"basic": false,
"bookish": false,
"bootstrap3": false,
"chubby": false,
"classic": false,
"default": true,
...
}
Changing any value will trigger the package to regenerate the files/folders accordingly.
This package generates the following structure based on custom.semantic.json
+- definitions/
+- site/
+- themes/
|- .custom.semantic.json
|- custom.semantic.json
|- semantic.less
|- theme.config.import.less
|- theme.import.less
The following table explains the generated files/folders and if they are editable without losing any changes when generating.
File/Folder | Description | Generated | Editable |
---|---|---|---|
definitions/ | contains the less and javascript definitions for each component |
always | no |
site/ | contains your current site's theme | only if it does not exist | yes |
themes/ | contains pre-packaged themes including Semantic's default theme | always | no |
.custom.semantic.json | copy of custom.semantic.json (see Generating Trigger) | always | no |
custom.semantic.json | contains definitions and themes to be included or not | only if the file is empty | yes |
semantic.less | imports the definitions | always | no |
theme.config.import.less | defines which theme to use per components | only if the file does not exist | yes |
theme.import.less | imports the right themes | always | no |
This folder contains your current site's theme. It is generated only when it does not exist. Therefore if you change custom.semantic.json
to turn definitions/themes on/off, then it will not affect site/. You will either need to add/remove files in site/ or remove the site/ folder so it can be regenerated again.
Every time Meteor starts (or refreshes) it calls the package semantic:ui
to generate Semantic UI.
The package has a simple mechanism based on the difference of custom.semantic.json
and .custom.semantic.json
to avoid generating all the time the files and folders.
Therefore if the file .custom.semantic.json
does not exist or it is different than custom.semantic.json
then it will generate Semantic UI. You need to do one of these to make it work the first time.
(Meteor <1.3) flemay:less-autoprefixer: Semantic UI needs autoprefixer to be compiled.
Note 1: You can choose any less-autoprefixer package.
Note 2: Since the flemay:less-autoprefixer package compiles
LESS
files you don't need theless
package.
(Meteor 1.3+) juliancwirko:postcss: Semantic UI needs autoprefixer for adding vendor prefixes.
(Meteor 1.3+) less: is needed to compile the LESS
files to CSS
when building.
semantic:ui-data is being used to get Semantic UI files.
Contributors are very welcome.
MIT license
nemo64:bootstrap: semantic:ui has been inspired by nemo64:bootstrap. It uses a very similar approach.