
Security News
Another Round of TEA Protocol Spam Floods npm, But It’s Not a Worm
Recent coverage mislabels the latest TEA protocol spam as a worm. Here’s what’s actually happening.
@doghouse/uikit
Advanced tools
The Doghouse UiKit is a SASS framework consisting of many tools and styles to make styling websites easier and more consistent. It tries not to impose too much, more just providing some sane defaults and lots of mixins that assist in common tasks.
Version 2.x of UiKit is intended to compile without Compass or Ruby, so it can be compiled with
Node Sass which is much faster and a lot easier to setup dev environments.
The preferred install method for version 2 is via npm.
Version 1.x requires Ruby/Compass and is generally installed with composer or git sub-module.
You can add the UiKit to your project via 3 methods.
Usage instructions assume you use this method.
npm install --save @doghouse/uikit
Add doghouse packages repo (if not already in your composer.json)
composer config repositories.doghouse composer https://packages.doghouse.agency/
Add the UiKit package
composer require doghouse/uikit:${version}
Where ${version} is the git tag.
Simply clone or download this repo into your project.
Dependencies should be as light as possible as this is reused many time.
The easiest way to get started for a new project is to copy the boilerplate dir into your
mytheme/styles/scss folder and start tweaking to your needs. The boilerplate contains an ideal folder structure
and some sample files that include some KSS comments to encourage you to continue through development.
Otherwise, simply import duk into your theme, optionally toggle if base styles are included (recommended) and
ensure dependencies are added beforehand. Eg:
// Requires breakpoint-sass
@import "~breakpoint-sass/stylesheets/breakpoint";
// Set this to false if you do not want styles included (ie. just use mixins and functions).
$duk-include-styles: true;
// Override/extend any other settings in "scss/_settings.scss"
// Import duk.
@import "~@doghouse/duk/scss/duk";
The above assumes you are using webpack to build and the ~ will automatically expand to node_modules/ path.
You can just include UiKit settings and tools into your SASS/theme and it will add no markup (0KB). You can then just use the mixins as required.
The recommended approach is to include the base generated UiKit styles (~50KB minified) as it provides an excellent starting point for new projects with sane resets and defaults. See the styleguide for what you get.
To toggle the inclusion of the base generated styles, set $duk-include-styles to true or false.
Almost all settings are in SASS maps so the can be easily merged and iterated over to dynamically create modifiers and styles.
map-merge is used to extend the defaults. This means defining or changing settings will not remove other defaults in
the same map.
Eg scss/_settings.scss uses a lot of this:
$duk-base-some-settings: () !default;
$duk-base-some-settings: map-merge(( ... ), $duk-base-some-settings);
More specific example, if you wanted a new button modifier .button--fulro, you would just add the following to your
settings (that get included before @import "duk"):
$duk-button-colors: ( 'fulro': #f42534 );
And your your new button class would be automatically created. The same is true for most of the variables/maps in the
settings.scss.
Highly recommend you use the Doghouse webpack project to get you started.
For a more lightweight CSS only solution, see package.json and webpack.config.js in the root of this repo.
This UiKit produces a living style guide via the KSS Syntax so you can easily browse
the tools available. The compiled style guide builds to the styleguide directory in the root of this repo.
Or just read the Readme.
You can rebuild the style guide with 2 commands as configuration is stored in kss-config.json.
npm install
npm run build
Read this readme about using icons and icon helpers. Due to path inclusion issues, you will probably
need to update $duk-icon-font-path to resolve correctly to a public path. This may be used in conjunction with a
webpack helper.
Something like:
const CopyWebpackPlugin = require('copy-webpack-plugin');
module.exports = {
...
plugins: [
new CopyWebpackPlugin([{
from: path.resolve(process.cwd(), 'node_modules/@doghouse/uikit/icons/*'),
to: path.resolve(process.cwd(), 'docroot/themes/custom/my_theme')
}], {})
]
}
TODO: Validate above or come up with a better solution.
npm run build twice to get the css into the style guide.npm run buildThis is caused by not using 'dart-sass' (package sass). You are probably using 'node-sass' instead.
To fix this run the following on your project:
npm uninstall node-sass --save && npm install sass --save-dev
Node sass package is deprecated and should be removed from your project. It is replaced with sass which is a JS only implementation of SASS.
Help make this even better, fix some code, add a feature and do a PR today! If you note an issue while working on a project, don't simply workaround in your own code, feed it back upstream into this package.
Original UiKit created by Jorege Castro. Version 2.x rebuild by Jeremy Graham. With loads of contributions from Doghouse staff along the way.
FAQs
Dohouse UiKit (duk)
We found that @doghouse/uikit demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Recent coverage mislabels the latest TEA protocol spam as a worm. Here’s what’s actually happening.

Security News
PyPI adds Trusted Publishing support for GitLab Self-Managed as adoption reaches 25% of uploads

Research
/Security News
A malicious Chrome extension posing as an Ethereum wallet steals seed phrases by encoding them into Sui transactions, enabling full wallet takeover.