experimental postcss

This commit is contained in:
Matthew Hodgson 2017-01-10 11:06:09 +00:00
parent 35b3013386
commit 691fe611d6
7 changed files with 94 additions and 153 deletions

View File

@ -31,7 +31,7 @@
"build:config": "cpx config.json webapp/", "build:config": "cpx config.json webapp/",
"build:emojione": "cpx \"node_modules/emojione/assets/svg/*\" webapp/emojione/svg/", "build:emojione": "cpx \"node_modules/emojione/assets/svg/*\" webapp/emojione/svg/",
"build:modernizr": "modernizr -c .modernizr.json -d src/vector/modernizr.js", "build:modernizr": "modernizr -c .modernizr.json -d src/vector/modernizr.js",
"build:css": "mkdirp build && node-sass --recursive --source-map true --output build \"src/skins/vector/css\"", "build:css": "mkdirp build && postcss -c postcss.config.json",
"build:compile": "babel --source-maps -d lib src", "build:compile": "babel --source-maps -d lib src",
"build:bundle": "NODE_ENV=production webpack -p --progress", "build:bundle": "NODE_ENV=production webpack -p --progress",
"build:bundle:dev": "webpack --optimize-occurence-order --progress", "build:bundle:dev": "webpack --optimize-occurence-order --progress",
@ -44,7 +44,7 @@
"start:emojione": "cpx \"node_modules/emojione/assets/svg/*\" webapp/emojione/svg/ -w", "start:emojione": "cpx \"node_modules/emojione/assets/svg/*\" webapp/emojione/svg/ -w",
"start:js": "webpack-dev-server -w --progress", "start:js": "webpack-dev-server -w --progress",
"start:js:prod": "NODE_ENV=production webpack-dev-server -w --progress", "start:js:prod": "NODE_ENV=production webpack-dev-server -w --progress",
"start:skins:css": "mkdirp build && node-sass --recursive --watch --source-map true --output build \"src/skins/vector/css\"", "start:skins:css": "mkdirp build && postcss -c postcss.config.json -w",
"start": "node scripts/babelcheck.js && parallelshell \"npm run start:emojione\" \"npm run start:res\" \"npm run start:config\" \"npm run start:js\" \"npm run start:skins:css\"", "start": "node scripts/babelcheck.js && parallelshell \"npm run start:emojione\" \"npm run start:res\" \"npm run start:config\" \"npm run start:js\" \"npm run start:skins:css\"",
"start:prod": "parallelshell \"npm run start:emojione\" \"npm run start:js:prod\" \"npm run start:skins:css\"", "start:prod": "parallelshell \"npm run start:emojione\" \"npm run start:js:prod\" \"npm run start:skins:css\"",
"clean": "rimraf build lib webapp electron/dist", "clean": "rimraf build lib webapp electron/dist",
@ -80,6 +80,7 @@
"url": "^0.11.0" "url": "^0.11.0"
}, },
"devDependencies": { "devDependencies": {
"autoprefixer": "^6.6.0",
"babel-cli": "^6.5.2", "babel-cli": "^6.5.2",
"babel-core": "^6.14.0", "babel-core": "^6.14.0",
"babel-eslint": "^6.1.0", "babel-eslint": "^6.1.0",
@ -116,10 +117,17 @@
"node-sass": "^4.1.1", "node-sass": "^4.1.1",
"parallelshell": "^1.2.0", "parallelshell": "^1.2.0",
"phantomjs-prebuilt": "^2.1.7", "phantomjs-prebuilt": "^2.1.7",
"postcss-cli": "^2.6.0",
"postcss-extend": "^1.0.5",
"postcss-import": "^9.0.0",
"postcss-mixins": "^5.4.1",
"postcss-nested": "^1.0.0",
"postcss-scss": "^0.4.0",
"postcss-simple-vars": "^3.0.0",
"postcss-strip-inline-comments": "^0.1.5",
"react-addons-perf": "^15.4.0", "react-addons-perf": "^15.4.0",
"react-addons-test-utils": "^15.4.0", "react-addons-test-utils": "^15.4.0",
"rimraf": "^2.4.3", "rimraf": "^2.4.3",
"sass-loader": "^4.1.1",
"source-map-loader": "^0.1.5", "source-map-loader": "^0.1.5",
"webpack": "^1.12.14", "webpack": "^1.12.14",
"webpack-dev-server": "^1.16.2" "webpack-dev-server": "^1.16.2"

View File

@ -1,73 +1,74 @@
// autogenerated by rethemendex.sh // autogenerated by rethemendex.sh
@import "_common"; @import "./_common.scss";
@import "matrix-react-sdk/structures/_ContextualMenu"; @import "./matrix-react-sdk/structures/_ContextualMenu.scss";
@import "matrix-react-sdk/structures/_CreateRoom"; @import "./matrix-react-sdk/structures/_CreateRoom.scss";
@import "matrix-react-sdk/structures/_FilePanel"; @import "./matrix-react-sdk/structures/_FilePanel.scss";
@import "matrix-react-sdk/structures/_MatrixChat"; @import "./matrix-react-sdk/structures/_MatrixChat.scss";
@import "matrix-react-sdk/structures/_NotificationPanel"; @import "./matrix-react-sdk/structures/_NotificationPanel.scss";
@import "matrix-react-sdk/structures/_RoomStatusBar"; @import "./matrix-react-sdk/structures/_RoomStatusBar.scss";
@import "matrix-react-sdk/structures/_RoomView"; @import "./matrix-react-sdk/structures/_RoomView.scss";
@import "matrix-react-sdk/structures/_SearchBox"; @import "./matrix-react-sdk/structures/_SearchBox.scss";
@import "matrix-react-sdk/structures/_UploadBar"; @import "./matrix-react-sdk/structures/_UploadBar.scss";
@import "matrix-react-sdk/structures/_UserSettings"; @import "./matrix-react-sdk/structures/_UserSettings.scss";
@import "matrix-react-sdk/structures/login/_Login"; @import "./matrix-react-sdk/structures/login/_Login.scss";
@import "matrix-react-sdk/views/avatars/_BaseAvatar"; @import "./matrix-react-sdk/views/avatars/_BaseAvatar.scss";
@import "matrix-react-sdk/views/dialogs/_ChatInviteDialog"; @import "./matrix-react-sdk/views/dialogs/_ChatInviteDialog.scss";
@import "matrix-react-sdk/views/dialogs/_EncryptedEventDialog"; @import "./matrix-react-sdk/views/dialogs/_EncryptedEventDialog.scss";
@import "matrix-react-sdk/views/dialogs/_SetDisplayNameDialog"; @import "./matrix-react-sdk/views/dialogs/_SetDisplayNameDialog.scss";
@import "matrix-react-sdk/views/elements/_AddressSelector"; @import "./matrix-react-sdk/views/elements/_AddressSelector.scss";
@import "matrix-react-sdk/views/elements/_AddressTile"; @import "./matrix-react-sdk/views/elements/_AddressTile.scss";
@import "matrix-react-sdk/views/elements/_DirectorySearchBox"; @import "./matrix-react-sdk/views/elements/_DirectorySearchBox.scss";
@import "matrix-react-sdk/views/elements/_MemberEventListSummary"; @import "./matrix-react-sdk/views/elements/_MemberEventListSummary.scss";
@import "matrix-react-sdk/views/elements/_ProgressBar"; @import "./matrix-react-sdk/views/elements/_ProgressBar.scss";
@import "matrix-react-sdk/views/elements/_RichText"; @import "./matrix-react-sdk/views/elements/_RichText.scss";
@import "matrix-react-sdk/views/login/_ServerConfig"; @import "./matrix-react-sdk/views/login/_ServerConfig.scss";
@import "matrix-react-sdk/views/messages/_MImageBody"; @import "./matrix-react-sdk/views/messages/_MImageBody.scss";
@import "matrix-react-sdk/views/messages/_MNoticeBody"; @import "./matrix-react-sdk/views/messages/_MNoticeBody.scss";
@import "matrix-react-sdk/views/messages/_MTextBody"; @import "./matrix-react-sdk/views/messages/_MTextBody.scss";
@import "matrix-react-sdk/views/messages/_TextualEvent"; @import "./matrix-react-sdk/views/messages/_TextualEvent.scss";
@import "matrix-react-sdk/views/messages/_UnknownBody"; @import "./matrix-react-sdk/views/messages/_UnknownBody.scss";
@import "matrix-react-sdk/views/rooms/_Autocomplete"; @import "./matrix-react-sdk/views/rooms/_Autocomplete.scss";
@import "matrix-react-sdk/views/rooms/_EntityTile"; @import "./matrix-react-sdk/views/rooms/_EntityTile.scss";
@import "matrix-react-sdk/views/rooms/_EventTile"; @import "./matrix-react-sdk/views/rooms/_EventTile.scss";
@import "matrix-react-sdk/views/rooms/_LinkPreviewWidget"; @import "./matrix-react-sdk/views/rooms/_LinkPreviewWidget.scss";
@import "matrix-react-sdk/views/rooms/_MemberDeviceInfo"; @import "./matrix-react-sdk/views/rooms/_MemberDeviceInfo.scss";
@import "matrix-react-sdk/views/rooms/_MemberInfo"; @import "./matrix-react-sdk/views/rooms/_MemberInfo.scss";
@import "matrix-react-sdk/views/rooms/_MemberList"; @import "./matrix-react-sdk/views/rooms/_MemberList.scss";
@import "matrix-react-sdk/views/rooms/_MessageComposer"; @import "./matrix-react-sdk/views/rooms/_MessageComposer.scss";
@import "matrix-react-sdk/views/rooms/_PresenceLabel"; @import "./matrix-react-sdk/views/rooms/_PresenceLabel.scss";
@import "matrix-react-sdk/views/rooms/_RoomHeader"; @import "./matrix-react-sdk/views/rooms/_RoomHeader.scss";
@import "matrix-react-sdk/views/rooms/_RoomList"; @import "./matrix-react-sdk/views/rooms/_RoomList.scss";
@import "matrix-react-sdk/views/rooms/_RoomPreviewBar"; @import "./matrix-react-sdk/views/rooms/_RoomPreviewBar.scss";
@import "matrix-react-sdk/views/rooms/_RoomSettings"; @import "./matrix-react-sdk/views/rooms/_RoomSettings.scss";
@import "matrix-react-sdk/views/rooms/_RoomTile"; @import "./matrix-react-sdk/views/rooms/_RoomTile.scss";
@import "matrix-react-sdk/views/rooms/_SearchableEntityList"; @import "./matrix-react-sdk/views/rooms/_SearchableEntityList.scss";
@import "matrix-react-sdk/views/rooms/_TabCompleteBar"; @import "./matrix-react-sdk/views/rooms/_TabCompleteBar.scss";
@import "matrix-react-sdk/views/rooms/_TopUnreadMessagesBar"; @import "./matrix-react-sdk/views/rooms/_TopUnreadMessagesBar.scss";
@import "matrix-react-sdk/views/settings/_DevicesPanel"; @import "./matrix-react-sdk/views/settings/_DevicesPanel.scss";
@import "matrix-react-sdk/views/settings/_IntegrationsManager"; @import "./matrix-react-sdk/views/settings/_IntegrationsManager.scss";
@import "matrix-react-sdk/views/voip/_CallView"; @import "./matrix-react-sdk/views/voip/_CallView.scss";
@import "matrix-react-sdk/views/voip/_IncomingCallbox"; @import "./matrix-react-sdk/views/voip/_IncomingCallbox.scss";
@import "matrix-react-sdk/views/voip/_VideoView"; @import "./matrix-react-sdk/views/voip/_VideoView.scss";
@import "vector-web/_fonts"; @import "./themes/_base.scss";
@import "vector-web/structures/_CompatibilityPage"; @import "./vector-web/_fonts.scss";
@import "vector-web/structures/_LeftPanel"; @import "./vector-web/structures/_CompatibilityPage.scss";
@import "vector-web/structures/_RightPanel"; @import "./vector-web/structures/_LeftPanel.scss";
@import "vector-web/structures/_RoomDirectory"; @import "./vector-web/structures/_RightPanel.scss";
@import "vector-web/structures/_RoomSubList"; @import "./vector-web/structures/_RoomDirectory.scss";
@import "vector-web/structures/_ViewSource"; @import "./vector-web/structures/_RoomSubList.scss";
@import "vector-web/views/context_menus/_MessageContextMenu"; @import "./vector-web/structures/_ViewSource.scss";
@import "vector-web/views/context_menus/_NotificationStateContextMenu"; @import "./vector-web/views/context_menus/_MessageContextMenu.scss";
@import "vector-web/views/context_menus/_RoomTagContextMenu"; @import "./vector-web/views/context_menus/_NotificationStateContextMenu.scss";
@import "vector-web/views/dialogs/_ChangelogDialog"; @import "./vector-web/views/context_menus/_RoomTagContextMenu.scss";
@import "vector-web/views/directory/_NetworkDropdown"; @import "./vector-web/views/dialogs/_ChangelogDialog.scss";
@import "vector-web/views/elements/_ImageView"; @import "./vector-web/views/directory/_NetworkDropdown.scss";
@import "vector-web/views/elements/_Spinner"; @import "./vector-web/views/elements/_ImageView.scss";
@import "vector-web/views/globals/_GuestWarningBar"; @import "./vector-web/views/elements/_Spinner.scss";
@import "vector-web/views/globals/_MatrixToolbar"; @import "./vector-web/views/globals/_GuestWarningBar.scss";
@import "vector-web/views/messages/_MessageTimestamp"; @import "./vector-web/views/globals/_MatrixToolbar.scss";
@import "vector-web/views/messages/_SenderProfile"; @import "./vector-web/views/messages/_MessageTimestamp.scss";
@import "vector-web/views/rooms/_RoomDropTarget"; @import "./vector-web/views/messages/_SenderProfile.scss";
@import "vector-web/views/rooms/_RoomTooltip"; @import "./vector-web/views/rooms/_RoomDropTarget.scss";
@import "vector-web/views/rooms/_SearchBar"; @import "./vector-web/views/rooms/_RoomTooltip.scss";
@import "vector-web/views/settings/_Notifications"; @import "./vector-web/views/rooms/_SearchBar.scss";
@import "./vector-web/views/settings/_Notifications.scss";

View File

@ -4,5 +4,5 @@ echo "// autogenerated by rethemendex.sh" > _components.scss
for i in `find . -iname _\*.scss | fgrep -v _components.scss`; for i in `find . -iname _\*.scss | fgrep -v _components.scss`;
do do
echo "@import \"`dirname $i`/`basename $i .scss`\";" >> _components.scss echo "@import \"$i\";" >> _components.scss
done done

View File

@ -1,72 +1,4 @@
@import "_base"; @import "_base.scss";
@import "_dark.scss";
// typical text (dark-on-white in light skin) @import "../_components.scss";
$primary-fg-color: #dddddd; // moofleasdadsasdadsa
$primary-bg-color: #2d2d2d;
// used for focusing form controls
$focus-bg-color: #101010;
// used for dialog box text
$light-fg-color: #747474;
// button UI (white-on-green in light skin)
$accent-fg-color: $primary-bg-color;
$accent-color: #76CFA6;
// red warning colour
$warning-color: #ff0064;
// left-panel style muted accent color
$secondary-accent-color: $primary-bg-color;
// used by AddressSelector
$selected-color: #eaf5f0;
// selected for hoverover & selected event tiles
$event-selected-color: #353535;
// used for the hairline dividers in RoomView
$primary-hairline-color: #474747;
// used for the border of input text fields
$input-border-color: #3a3a3a;
// apart from login forms, which have stronger border
$strong-input-border-color: #656565;
// context menus
$menu-border-color: rgba(187, 187, 187, 0.5);
$menu-bg-color: #373737;
$avatar-initial-color: #2d2d2d;
// ********************
$roomtile-name-color: rgba(186, 186, 186, 0.8);
$roomtile-selected-bg-color: rgba(0, 0, 0, 0.8);
$roomsublist-label-fg-color: $primary-fg-color;
$roomsublist-label-bg-color: #454545;
// ********************
// event tile lifecycle
$event-encrypting-color: #abddbc;
$event-sending-color: #ddd;
$event-notsent-color: #f44;
// event timestamp
$event-timestamp-color: #acacac;
// e2e
$e2e-verified-color: #76cfa5; // N.B. *NOT* the same as $accent-color
$e2e-unverified-color: #e8bf37;
$e2e-warning-color: #ba6363;
/*** ImageView ***/
$lightbox-bg-color: #454545;
$lightbox-fg-color: #ffffff;
$lightbox-border-color: #ffffff;
@import "../_components";

View File

@ -1,2 +1,2 @@
@import "_base"; @import "_base.scss";
@import "../_components"; @import "../_components.scss";

View File

@ -30,7 +30,7 @@ require('babel-polyfill');
// CSS requires: just putting them here for now as CSS is going to be // CSS requires: just putting them here for now as CSS is going to be
// refactored "soon" anyway // refactored "soon" anyway
require('../../build/themes/dark.css'); require('../../build/dark.scss');
require('gemini-scrollbar/gemini-scrollbar.css'); require('gemini-scrollbar/gemini-scrollbar.css');
require('gfm.css/gfm.css'); require('gfm.css/gfm.css');
require('highlight.js/styles/github.css'); require('highlight.js/styles/github.css');

View File

@ -24,8 +24,8 @@ module.exports = {
{ test: /\.json$/, loader: "json" }, { test: /\.json$/, loader: "json" },
{ test: /\.js$/, loader: "babel", include: path.resolve('./src') }, { test: /\.js$/, loader: "babel", include: path.resolve('./src') },
// css-raw-loader loads CSS but doesn't try to treat url()s as require()s // css-raw-loader loads CSS but doesn't try to treat url()s as require()s
{ test: /\.css$/, loader: ExtractTextPlugin.extract("css-raw-loader") }, // we're assuming that postcss has already preprocessed SCSS by this point
{ test: /\.scss$/, loaders: ["style-loader", "css-loader?sourceMap", "sass-loader?sourceMap"] }, { test: /\.s?css$/, loader: ExtractTextPlugin.extract("css-raw-loader") },
], ],
noParse: [ noParse: [
// don't parse the languages within highlight.js. They cause stack // don't parse the languages within highlight.js. They cause stack