├── .idea
├── flarum-ext-material.iml
├── misc.xml
├── modules.xml
└── vcs.xml
├── LICENSE.md
├── README.md
├── composer.json
├── extend.php
├── icon.jpg
├── js
├── admin.js
├── admin
│ ├── Gulpfile.js
│ ├── dist
│ │ └── extension.js
│ ├── package.json
│ └── src
│ │ └── main.js
├── dist
│ ├── admin.js
│ ├── admin.js.map
│ ├── forum.js
│ └── forum.js.map
├── forum.js
├── forum
│ ├── Gulpfile.js
│ ├── dist
│ │ └── extension.js
│ ├── package.json
│ └── src
│ │ └── main.js
├── package-lock.json
├── package.json
└── webpack.config.js
├── resources
├── less
│ ├── admin.less
│ └── forum.less
└── locale
│ └── en.yml
└── src
└── Listeners
└── AddClientAssets.php
/.idea/flarum-ext-material.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | MIT License Copyright (c)
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4 |
5 | The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software.
6 |
7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Material
2 |
3 |  [](https://packagist.org/packages/extum/flarum-ext-material)
4 |
5 | A [Flarum](http://flarum.org) extension.
6 |
7 | ### Installation
8 |
9 | Use [Bazaar](https://discuss.flarum.org/d/5151-flagrow-bazaar-the-extension-marketplace) or install manually with composer:
10 |
11 | ```sh
12 | composer require extum/flarum-ext-material
13 | ```
14 |
15 | ### Updating
16 |
17 | ```sh
18 | composer update extum/flarum-ext-material
19 | ```
20 |
21 | ### Links
22 |
23 | - [Packagist](https://packagist.org/packages/extum/flarum-ext-material)
24 |
25 | ### Source
26 |
27 | ```sh
28 | npm i
29 | ```
--------------------------------------------------------------------------------
/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "extum/flarum-ext-material",
3 | "description": "Extum Material brings Flarum to the next-level with Material Design!",
4 | "keywords": ["theme", "material-design", "material", "flarum-extension", "flarum", "style"],
5 | "type": "flarum-extension",
6 | "require": {
7 | "flarum/core": ">=0.1.0-beta.10 <0.1.0-beta.12"
8 | },
9 | "authors": [
10 | {
11 | "name": "Extum",
12 | "email": "ardacebi1@gmail.com",
13 | "role": "Developer"
14 | }
15 | ],
16 | "autoload": {
17 | "psr-4": {"Extum\\MDL\\": "src/"}
18 | },
19 | "extra": {
20 | "flarum-extension": {
21 | "title": "Extum Material",
22 | "icon": {
23 | "image": "icon.jpg",
24 | "backgroundSize": "cover",
25 | "backgroundColor": "#dbc6f9",
26 | "color": "#fff"
27 | }
28 | }
29 | },
30 | "flagrow": {
31 | "discuss": "https://discuss.flarum.org/d/14335-material-design-extension-theme-by-extum"
32 | }
33 | }
--------------------------------------------------------------------------------
/extend.php:
--------------------------------------------------------------------------------
1 | js(__DIR__.'/js/dist/forum.js')
19 | ->css(__DIR__.'/resources/less/forum.less'),
20 | (new Extend\Frontend('admin'))
21 | ->js(__DIR__.'/js/dist/admin.js')
22 | ->css(__DIR__.'/resources/less/admin.less'),
23 | new Extend\Locales(__DIR__ . '/resources/locale')
24 | ];
25 |
--------------------------------------------------------------------------------
/icon.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Extum/material/018a2e149b496bc804c1d97730ba784295fd6821/icon.jpg
--------------------------------------------------------------------------------
/js/admin.js:
--------------------------------------------------------------------------------
1 | export * from './src/admin';
2 |
--------------------------------------------------------------------------------
/js/admin/Gulpfile.js:
--------------------------------------------------------------------------------
1 | var gulp = require('flarum-gulp');
2 |
3 | gulp({
4 | modules: {
5 | 'extum/flarum-ext-material': [
6 | 'src/**/*.js',
7 | ]
8 | }
9 | });
10 |
--------------------------------------------------------------------------------
/js/admin/dist/extension.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | System.register('extum/flarum-ext-material/main', ['flarum/app'], function (_export, _context) {
4 | "use strict";
5 |
6 | var app;
7 | return {
8 | setters: [function (_flarumApp) {
9 | app = _flarumApp.default;
10 | }],
11 | execute: function () {
12 |
13 | app.initializers.add('extum/flarum-ext-material', function () {});
14 | }
15 | };
16 | });
--------------------------------------------------------------------------------
/js/admin/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "private": true,
3 | "devDependencies": {
4 | "gulp": "^3.9.1",
5 | "flarum-gulp": "^0.2.0"
6 | },
7 | "dependencies": {}
8 | }
9 |
--------------------------------------------------------------------------------
/js/admin/src/main.js:
--------------------------------------------------------------------------------
1 | import app from 'flarum/app';
2 |
3 | app.initializers.add('extum/flarum-ext-material', () => {});
4 |
--------------------------------------------------------------------------------
/js/dist/admin.js:
--------------------------------------------------------------------------------
1 | module.exports=function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=3)}([,function(e,t){app.initializers.add("extum/flarum-ext-material",(function(){console.log("[extum/flarum-ext-material] Hello, admin!")}))},,function(e,t,r){"use strict";r.r(t);var n=r(1);for(var o in n)"default"!==o&&function(e){r.d(t,e,(function(){return n[e]}))}(o)}]);
2 | //# sourceMappingURL=admin.js.map
--------------------------------------------------------------------------------
/js/dist/admin.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["webpack://@extum/flarum-ext-material/webpack/bootstrap","webpack://@extum/flarum-ext-material/./src/admin/index.js","webpack://@extum/flarum-ext-material/./admin.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","app","initializers","add","console","log"],"mappings":"2BACE,IAAIA,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QA0Df,OArDAF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEZ,EAAoBkB,EAAI,SAAShB,GACX,oBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAQvDrB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrB,EAAoBU,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRzB,EAAoB6B,EAAI,SAAS1B,GAChC,IAAIS,EAAST,GAAUA,EAAOqB,WAC7B,WAAwB,OAAOrB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRZ,EAAoBa,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG/B,EAAoBkC,EAAI,GAIjBlC,EAAoBA,EAAoBmC,EAAI,G,iBClFrDC,IAAIC,aAAaC,IAAI,6BAA6B,WAChDC,QAAQC,IAAI,iD,8BCDd","file":"admin.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 3);\n","app.initializers.add('extum/flarum-ext-material', () => {\r\n console.log('[extum/flarum-ext-material] Hello, admin!');\r\n});\r\n","export * from './src/admin';\n"],"sourceRoot":""}
--------------------------------------------------------------------------------
/js/dist/forum.js:
--------------------------------------------------------------------------------
1 | module.exports=function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=2)}([function(e,t){app.initializers.add("extum/flarum-ext-material",(function(){console.log("[extum/flarum-ext-material] Hello, forum!")}))},,function(e,t,r){"use strict";r.r(t);var n=r(0);for(var o in n)"default"!==o&&function(e){r.d(t,e,(function(){return n[e]}))}(o)}]);
2 | //# sourceMappingURL=forum.js.map
--------------------------------------------------------------------------------
/js/dist/forum.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["webpack://@extum/flarum-ext-material/webpack/bootstrap","webpack://@extum/flarum-ext-material/./src/forum/index.js","webpack://@extum/flarum-ext-material/./forum.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","app","initializers","add","console","log"],"mappings":"2BACE,IAAIA,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QA0Df,OArDAF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEZ,EAAoBkB,EAAI,SAAShB,GACX,oBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAQvDrB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrB,EAAoBU,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRzB,EAAoB6B,EAAI,SAAS1B,GAChC,IAAIS,EAAST,GAAUA,EAAOqB,WAC7B,WAAwB,OAAOrB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRZ,EAAoBa,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG/B,EAAoBkC,EAAI,GAIjBlC,EAAoBA,EAAoBmC,EAAI,G,gBClFrDC,IAAIC,aAAaC,IAAI,6BAA6B,WAChDC,QAAQC,IAAI,iD,8BCDd","file":"forum.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 2);\n","app.initializers.add('extum/flarum-ext-material', () => {\r\n console.log('[extum/flarum-ext-material] Hello, forum!');\r\n});\r\n","export * from './src/forum';\n"],"sourceRoot":""}
--------------------------------------------------------------------------------
/js/forum.js:
--------------------------------------------------------------------------------
1 | export * from './src/forum';
2 |
--------------------------------------------------------------------------------
/js/forum/Gulpfile.js:
--------------------------------------------------------------------------------
1 | var gulp = require('flarum-gulp');
2 |
3 | gulp({
4 | modules: {
5 | 'extum/flarum-ext-material': [
6 | 'src/**/*.js',
7 | ]
8 | }
9 | });
10 |
--------------------------------------------------------------------------------
/js/forum/dist/extension.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | System.register('extum/flarum-ext-material/main', ['flarum/app'], function (_export, _context) {
4 | "use strict";
5 |
6 | var app;
7 | return {
8 | setters: [function (_flarumApp) {
9 | app = _flarumApp.default;
10 | }],
11 | execute: function () {
12 |
13 | app.initializers.add('extum/flarum-ext-material', function () {});
14 | }
15 | };
16 | });
--------------------------------------------------------------------------------
/js/forum/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "private": true,
3 | "devDependencies": {
4 | "gulp": "^4.0.0",
5 | "flarum-gulp": "^0.2.0"
6 | },
7 | "dependencies": {}
8 | }
9 |
--------------------------------------------------------------------------------
/js/forum/src/main.js:
--------------------------------------------------------------------------------
1 | import app from 'flarum/app';
2 |
3 | app.initializers.add('extum/flarum-ext-material', () => {});
4 |
--------------------------------------------------------------------------------
/js/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@extum/flarum-ext-material",
3 | "version": "0.0.0",
4 | "private": true,
5 | "dependencies": {
6 | "flarum-webpack-config": "^0.1.0-beta.10",
7 | "webpack": "^4.26.0",
8 | "webpack-cli": "^3.0.7"
9 | },
10 | "scripts": {
11 | "dev": "webpack --mode development --watch",
12 | "build": "webpack --mode production"
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/js/webpack.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require('flarum-webpack-config')();
2 |
--------------------------------------------------------------------------------
/resources/less/admin.less:
--------------------------------------------------------------------------------
1 | @import url("https://fonts.googleapis.com/css?family=Material+Icons");
2 | @import "forum.less";
3 |
4 | .fa {
5 | font:normal normal normal 60px/1 'Material Icons';
6 | display:inline-block;
7 | transform:translateY(20%);
8 | text-transform:none;
9 | letter-spacing:normal;
10 | word-wrap:normal;
11 | white-space:nowrap;
12 | direction:ltr;
13 | -webkit-font-smoothing:antialiased;
14 | text-rendering:optimizeLegibility;
15 | -moz-osx-font-smoothing:grayscale;
16 | font-feature-settings:'liga'
17 | }
--------------------------------------------------------------------------------
/resources/less/forum.less:
--------------------------------------------------------------------------------
1 | /*
2 | Author: Extum
3 | Version: 1.0.0
4 | Contact: ardacebi1@gmail.com
5 | Github: https://github.com/Extum
6 |
7 | */
8 |
9 | .App-nav .AdminNav .Dropdown-menu>li.active>a .Button-icon {
10 | color: wheat;
11 | font-weight: normal;
12 | }
13 | .App-nav .AdminNav .Dropdown-menu>li.active>a .Button-label {
14 | color: wheat;
15 | font-weight: normal;
16 | }
17 | .App-nav .AdminNav .Dropdown-menu>li.active>a .Button-label,
18 | .App-nav .AdminNav .Dropdown-menu>li.active>a .Button-icon {
19 | color: goldenrod;
20 | font-weight: normal;
21 | }
22 | ::-webkit-scrollbar {
23 | width: 0px;
24 | }
25 | ::-webkit-scrollbar-track {
26 | background: transparent;
27 | }
28 | ::-webkit-scrollbar-thumb {
29 | background: transparent;
30 | }
31 | ::-webkit-scrollbar-thumb:hover {
32 | background: transparent;
33 | }
34 | .App-nav .AdminNav .Button-icon {
35 | float: left;
36 | margin-left: -30px;
37 | font-size: 14px;
38 | margin-top: 0px !important;
39 | }
40 | .Dropdown-toggle.Button.Button--icon.Button--flat {
41 | box-shadow: none;
42 | margin-right: 9px;
43 | margin-top: 1.4px;
44 | }
45 | .SessionDropdown .Dropdown-toggle .Avatar {
46 | margin: 5px 3px -2px -6px;
47 | width: 24px;
48 | height: 24px;
49 | border-radius: 24px;
50 | font-size: 12px;
51 | line-height: 24px;
52 | }
53 | .ExtensionListItem {
54 | width: 145px;
55 | height: 192px;
56 | margin-right: 15px;
57 | margin-bottom: 15px;
58 | box-shadow: 0 2px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
59 | border-bottom-left-radius: 2px;
60 | border-bottom-right-radius: 2px;
61 | }
62 | .ExtensionIcon {
63 | width: 145px;
64 | height: auto;
65 | color: #667c99;
66 | display: inline-block;
67 | font-size: 60px;
68 | line-height: 150px;
69 | text-align: center;
70 | border-top-left-radius: 2px;
71 | border-top-right-radius: 2px;
72 | }
73 | .Dropdown-toggle.Button.Button--icon.Button--flat {
74 | box-shadow: none;
75 | }
76 | li.item-changePassword {
77 | margin-right: 3px;
78 | }
79 | li.item-changeEmail {
80 | margin-right: 8px
81 | }
82 | .App-nav .AdminNav .Dropdown-menu > li.active > a .Button-label,
83 | .App-nav .AdminNav .Dropdown-menu > li.active > a .Button-icon {
84 | color: #111;
85 | font-weight: normal;
86 | }
87 | .on.Checkbox--switch .Checkbox-display:before {
88 | left: 25px;
89 | margin-bottom: 7px;
90 | margin-top: -6px;
91 | height: 20px;
92 | width: 20px;
93 | border-radius: 50%;
94 | background: @primary-color;
95 |
96 | box-shadow: 0 3px 4px 0 rgba(0, 0, 0, .14), 0 3px 3px -2px rgba(0, 0, 0, .2), 0 1px 8px 0 rgba(0, 0, 0, .12);
97 | }
98 | .fa-circle:before {
99 | color: #00C851;
100 | }
101 | .UserCard-lastSeen.online .fa-circle {
102 | color: #00C851;
103 | }
104 | .Modal-close {
105 | position: absolute;
106 | right: 0px;
107 | top: 10px;
108 | z-index: 1;
109 | }
110 | .on.Checkbox--switch .Checkbox-display {
111 | background: @primary-color;
112 |
113 | left: 0;
114 | top: 5px;
115 | height: 14px;
116 | width: 36px;
117 | border-radius: 14px;
118 | cursor: pointer;
119 | }
120 | .Checkbox--switch .Checkbox-display:before {
121 | content: ' ';
122 | background: #fff;
123 | border-radius: 11px;
124 | box-shadow: 0 2px 4px rgba(0, 0, 0, 0.35);
125 | left: -8px;
126 | margin-bottom: 7px;
127 | height: 20px;
128 | width: 20px;
129 | border-radius: 50%;
130 | margin-top: -6px;
131 | }
132 | .Checkbox--switch .Checkbox-display {
133 | width: 50px;
134 | height: 28px;
135 | padding: 3px;
136 | position: relative;
137 | background: #e4e8f6;
138 | transition: background-color .2s;
139 | -webkit-transition: background-color .2s;
140 | -moz-transition: background-color .2s;
141 | -ms-transition: background-color .2s;
142 | -o-transition: background-color .2s;
143 | background: rgba(0, 0, 0, 0.26);
144 | left: 0;
145 | top: 5px;
146 | height: 14px;
147 | width: 36px;
148 | border-radius: 14px;
149 | cursor: pointer;
150 | }
151 | .Form--centered .Button {
152 | margin: 0 auto;
153 | text-align: center;
154 | font-size: 15px;
155 | padding: 0px 0px;
156 | height: 35px;
157 | }
158 | li.item-tag1,
159 | li.item-tag2,
160 | li.item-tag3,
161 | li.item-tag4,
162 | li.item-tag5,
163 | li.item-tag6,
164 | li.item-tag7,
165 | li.item-tag8,
166 | li.item-tag9,
167 | li.item-tag10,
168 | li.item-tag11,
169 | li.item-tag12,
170 | li.item-tag13,
171 | li.item-tag14,
172 | li.item-tag15,
173 | li.item-tag16,
174 | li.item-tag17,
175 | li.item-tag18,
176 | li.item-tag19,
177 | li.item-tag20 {
178 | padding-left: 10px;
179 | }
180 | .sideNav .Dropdown--select .Dropdown-menu>.Dropdown-separator {
181 | background: #e5e7f6;
182 | visibility: hidden;
183 | height: 0px;
184 | width: 0px;
185 | }
186 | .sideNav .Dropdown--select .Dropdown-menu > li > a .Button-icon {
187 | float: left;
188 | margin-left: -26px;
189 | margin-top: 0px;
190 | font-size: 19px;
191 | border-radius: 4px;
192 | padding-bottom: 3px;
193 | margin-bottom: 0px;
194 | }
195 | .Form--centered .Button {
196 | margin: 0 auto;
197 | text-align: center;
198 | font-size: 15px;
199 | padding: 0px 0px;
200 | height: 35px;
201 | }
202 | .App-header {
203 | padding: 8px;
204 | height: 52px;
205 | position: absolute;
206 | top: 0;
207 | left: 0;
208 | right: 0;
209 | z-index: 1000;
210 | box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.12);
211 | }
212 | .PermissionGrid tbody .Dropdown .Dropdown-toggle {
213 | width: auto;
214 | display: block;
215 | text-align: center;
216 | float: none;
217 | padding-top: 0px;
218 | margin-top: 1px;
219 | padding-left: 10px;
220 | padding-right: 8px;
221 | box-shadow: none;
222 | }
223 | .box-shadow (@shadow) {
224 | -webkit-box-shadow: @shadow;
225 |
226 | -moz-box-shadow: @shadow;
227 |
228 | box-shadow: @shadow;
229 |
230 | }
231 | @import url('https://fonts.googleapis.com/css?family=Roboto');
232 | @import url('https://fonts.googleapis.com/css?family=Source+Code+Pro');
233 | @dfont: "Roboto",
234 | Helvetica,
235 | Arial,
236 | sans-serif;
237 | @shadow3: rgba(0,
238 | 0,
239 | 0,
240 | .2);
241 | // whitestyle
242 | @wscolor: #585858;
243 | @wshcolor: @wscolor + #000000;
244 | // darkstyle
245 | @dscolor: #b7b7b7;
246 | @ducolor: #cecece;
247 | @dshcolor: #d1d1d1;
248 | @default-shadow: 0 2px 3px rgba(0,
249 | 0,
250 | 0,
251 | 0.12),
252 | 0 1px 2px rgba(0,
253 | 0,
254 | 0,
255 | 0.24);
256 | body {
257 | font-family: @dfont !important;
258 | }
259 | .IndexPage-newDiscussion {
260 | box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
261 | border: none;
262 | border-radius: 4px;
263 | position: relative;
264 | height: 36px;
265 | margin: 0;
266 | min-width: 64px;
267 | padding: 0 16px;
268 | display: inline-block;
269 | font-family: "Roboto", "Helvetica", "Arial", sans-serif;
270 | font-size: 14px;
271 | font-weight: 500;
272 | text-transform: uppercase;
273 | line-height: 1;
274 | letter-spacing: 0;
275 | overflow: hidden;
276 | will-change: box-shadow;
277 | transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1);
278 | outline: none;
279 | cursor: pointer;
280 | text-decoration: none;
281 | text-align: center;
282 | line-height: 36px;
283 | vertical-align: middle;
284 | }
285 | .IndexPage-newDiscussion:hover {
286 | -webkit-filter: grayscale(20%);
287 | /* Safari 6.0 - 9.0 */
288 | filter: grayscale(20%);
289 | }
290 | .IndexPage-newDiscussion:focus:not(:active) {
291 | -webkit-filter: grayscale(40%);
292 | /* Safari 6.0 - 9.0 */
293 | filter: grayscale(40%);
294 | }
295 | .IndexPage-newDiscussion:active {
296 | -webkit-filter: grayscale(40%);
297 | /* Safari 6.0 - 9.0 */
298 | filter: grayscale(40%);
299 | }
300 | .IndexPage-newDiscussion.IndexPage-newDiscussion--colored {
301 | color: rgb(63, 81, 181);
302 | }
303 | .IndexPage-newDiscussion.IndexPage-newDiscussion--colored:focus:not(:active) {
304 | -webkit-filter: grayscale(40%);
305 | /* Safari 6.0 - 9.0 */
306 | filter: grayscale(40%);
307 | }
308 | input.IndexPage-newDiscussion[type="submit"] {
309 | -webkit-appearance: none;
310 | }
311 | .IndexPage-newDiscussion--raised:active {
312 | -webkit-filter: grayscale(40%);
313 | /* Safari 6.0 - 9.0 */
314 | filter: grayscale(40%);
315 | }
316 | .IndexPage-newDiscussion--raised:focus:not(:active) {
317 | box-shadow: 0 0 8px rgba(0, 0, 0, 0.18), 0 8px 16px rgba(0, 0, 0, 0.36);
318 | background-color: rgba(158, 158, 158, 0.40);
319 | }
320 | .IndexPage-newDiscussion--raised.IndexPage-newDiscussion--colored {
321 | background: rgb(63, 81, 181);
322 | color: rgb(255, 255, 255);
323 | }
324 | .IndexPage-newDiscussion--raised.IndexPage-newDiscussion--colored:hover {
325 | background-color: rgb(63, 81, 181);
326 | }
327 | .IndexPage-newDiscussion--raised.IndexPage-newDiscussion--colored:active {
328 | background-color: rgb(63, 81, 181);
329 | }
330 | .IndexPage-newDiscussion--raised.IndexPage-newDiscussion--colored:focus:not(:active) {
331 | background-color: rgb(63, 81, 181);
332 | }
333 | .IndexPage-newDiscussion--raised.IndexPage-newDiscussion--colored .mdl-ripple {
334 | background: rgb(255, 255, 255);
335 | }
336 | .Button--primary {
337 | border-radius: 4px;
338 | }
339 | .Button {
340 | box-shadow: 0 2px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
341 | border: none;
342 | border-radius: 4px;
343 | position: relative;
344 | height: 36px;
345 | margin: 0;
346 | min-width: 44px;
347 | padding: 1px 12px;
348 | display: inline-block;
349 | font-family: "Roboto", "Helvetica", "Arial", sans-serif;
350 | font-size: 14px;
351 | font-weight: 500;
352 | text-transform: uppercase;
353 | line-height: 1;
354 | letter-spacing: 0;
355 | overflow: hidden;
356 | will-change: box-shadow;
357 | transition: box-shadow .2s cubic-bezier(.4, 0, 1, 1), background-color .2s cubic-bezier(.4, 0, .2, 1), color .2s cubic-bezier(.4, 0, .2, 1);
358 | outline: none;
359 | cursor: pointer;
360 | text-decoration: none;
361 | text-align: center;
362 | line-height: 36px;
363 | vertical-align: middle;
364 | }
365 | .Button:hover {
366 | -webkit-filter: grayscale(20%);
367 | /* Safari 6.0 - 9.0 */
368 | filter: grayscale(20%);
369 | }
370 | .Button:focus:not(:active) {
371 | -webkit-filter: grayscale(40%);
372 | /* Safari 6.0 - 9.0 */
373 | filter: grayscale(40%);
374 | }
375 | .Button:active {
376 | -webkit-filter: grayscale(40%);
377 | /* Safari 6.0 - 9.0 */
378 | filter: grayscale(40%);
379 | }
380 | .Button.Button--colored {
381 | color: rgb(63, 81, 181);
382 | }
383 | .Button.Button--colored:focus:not(:active) {
384 | -webkit-filter: grayscale(40%);
385 | /* Safari 6.0 - 9.0 */
386 | filter: grayscale(40%);
387 | }
388 | input.Button[type="submit"] {
389 | -webkit-appearance: none;
390 | }
391 | .Button--raised:active {
392 | -webkit-filter: grayscale(40%);
393 | /* Safari 6.0 - 9.0 */
394 | filter: grayscale(40%);
395 | }
396 | .Button--raised:focus:not(:active) {
397 | box-shadow: 0 0 8px rgba(0, 0, 0, 0.18), 0 8px 16px rgba(0, 0, 0, 0.36);
398 | background-color: rgba(158, 158, 158, 0.40);
399 | }
400 | .Button--raised.Button--colored {
401 | background: rgb(63, 81, 181);
402 | color: rgb(255, 255, 255);
403 | }
404 | .Button--raised.Button--colored:hover {
405 | background-color: rgb(63, 81, 181);
406 | }
407 | .Button--raised.Button--colored:active {
408 | background-color: rgb(63, 81, 181);
409 | }
410 | .Button--raised.Button--colored:focus:not(:active) {
411 | background-color: rgb(63, 81, 181);
412 | }
413 | .Button--raised.Button--colored .mdl-ripple {
414 | background: rgb(255, 255, 255);
415 | }
416 | .DiscussionPage-nav .ButtonGroup:not(.itemCount1) .Dropdown-toggle {
417 | width: 22%;
418 | margin-top: -38px;
419 | }
420 | .DiscussionPage-nav .ButtonGroup:not(.itemCount1) .Dropdown-toggle {
421 | width: 0%;
422 | margin-top: -36px;
423 | margin-left: 133px;
424 | border-top-right-radius: 2px;
425 | border-bottom-right-radius: 2px;
426 | border-top-left-radius: 0px;
427 | border-bottom-left-radius: 0px;
428 | }
429 | .DiscussionPage-nav .ButtonGroup:not(.itemCount1) .Button:first-child {
430 | width: 85%;
431 | border-top-left-radius: 2px;
432 | border-bottom-left-radius: 2px;
433 | border-bottom-right-radius: 0px;
434 | border-bottom-left-radius: 0px;
435 | }
436 | .DiscussionPage-nav .ButtonGroup:not(.itemCount1) .Button:first-child {} .Button--link {
437 | background: transparent !important;
438 | margin-right: 9px;
439 | }
440 | .DiscussionListItem-controls .Dropdown-toggle {
441 | display: block;
442 | margin-left: 9px;
443 | margin-top: -2px;
444 | }
445 | .Dropdown-menu>li>a .Button-icon,
446 | .Dropdown-menu>li>button .Button-icon,
447 | .Dropdown-menu>li>span .Button-icon {
448 | float: left;
449 | margin-left: -25px;
450 | width: 1.28571429em;
451 | text-align: center;
452 | }
453 | @keyframes pulse {
454 | 0% {
455 | transform: scale(1);
456 | }
457 | 50% {
458 | transform: scale(1.5);
459 | }
460 | 100% {
461 | transform: scale(1);
462 | }
463 | }
464 | .new .NotificationsDropdown-unread {
465 | animation: pulse 1s infinite;
466 | }
467 | .TagIcon {
468 | border-radius: 4px;
469 | width: 18px;
470 | height: 18px;
471 | display: inline-block;
472 | vertical-align: -3px;
473 | margin-left: 1px;
474 | background: #e8ecf3;
475 | -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
476 | -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
477 | box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
478 | font-size: 14px !important
479 | }
480 | .TagIcon {
481 | margin-top: 4px;
482 | }
483 | .sideNav .TagLinkButton .TagIcon {
484 | .box-shadow(0 1px 1px@shadow3);
485 |
486 | height: 18px;
487 | font-size: 14px !important;
488 | }
489 | .Button--icon {
490 | border: none;
491 | border-radius: 4px;
492 | position: relative;
493 | margin-left: 5px;
494 | display: inline-block;
495 | font-family: "Roboto", "Helvetica", "Arial", sans-serif;
496 | font-size: 14px;
497 | font-weight: 500;
498 | text-transform: uppercase;
499 | line-height: 1;
500 | letter-spacing: 0;
501 | overflow: hidden;
502 | will-change: box-shadow;
503 | transition: box-shadow .2s cubic-bezier(.4, 0, 1, 1), background-color .2s cubic-bezier(.4, 0, .2, 1), color .2s cubic-bezier(.4, 0, .2, 1);
504 | outline: none;
505 | cursor: pointer;
506 | text-decoration: none;
507 | text-align: center;
508 | line-height: 36px;
509 | vertical-align: middle;
510 | padding-top: 0px;
511 | }
512 | .Button--icon .Button-icon {
513 | font-size: 16px;
514 | vertical-align: -1px;
515 | margin: 0;
516 | margin-left: -1px;
517 | }
518 | .DiscussionListItem-author {
519 | float: left;
520 | margin-top: 13px;
521 | overflow: hidden
522 | }
523 | .PostUser-avatar {
524 | left: -85px;
525 | position: absolute;
526 | width: 64px;
527 | height: 64px;
528 | border-radius: 64px;
529 | font-size: 32px;
530 | line-height: 64px;
531 | overflow: hidden
532 | }
533 | .Post {
534 | padding-left: 105px;
535 | box-shadow: @default-shadow;
536 |
537 | border-radius: 4px;
538 | }
539 | .NotificationGrid {
540 | position: relative;
541 | border: 1px solid rgba(0, 0, 0, 0.12);
542 | border-collapse: collapse;
543 | white-space: nowrap;
544 | font-size: 13px;
545 | background-color: rgb(255, 255, 255);
546 | box-shadow: @default-shadow;
547 |
548 | margin-bottom: 20px
549 | }
550 | .NotificationGrid thead {
551 | padding-bottom: 3px;
552 | }
553 | .NotificationGrid thead .NotificationGrid__select {
554 | margin-top: 0;
555 | }
556 | .NotificationGrid tbody tr {
557 | position: relative;
558 | height: 48px;
559 | transition-duration: 0.28s;
560 | transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
561 | transition-property: background-color;
562 | }
563 | .NotificationGrid tbody tr.is-selected {
564 | background-color: #e0e0e0;
565 | }
566 | .NotificationGrid td,
567 | .NotificationGrid th {
568 | border-bottom: none;
569 | padding: 0 18px 12px 18px;
570 | }
571 | .NotificationGrid td:first-of-type,
572 | .NotificationGrid th:first-of-type {
573 | padding-left: 24px;
574 | }
575 | .NotificationGrid td:last-of-type,
576 | .NotificationGrid th:last-of-type {
577 | /* padding-right: 24px; */
578 | }
579 | .NotificationGrid td {
580 | position: relative;
581 | vertical-align: middle;
582 | height: 48px;
583 | border-top: 1px solid rgba(0, 0, 0, 0.12);
584 | border-bottom: 1px solid rgba(0, 0, 0, 0.12);
585 | padding-top: 12px;
586 | box-sizing: border-box;
587 | }
588 | .NotificationGrid td .NotificationGrid__select {
589 | vertical-align: middle;
590 | }
591 | .NotificationGrid th {
592 | position: relative;
593 | vertical-align: bottom;
594 | text-overflow: ellipsis;
595 | font-size: 14px;
596 | font-weight: bold;
597 | line-height: 24px;
598 | letter-spacing: 0;
599 | height: 48px;
600 | font-size: 12px;
601 | color: rgba(0, 0, 0, 0.54);
602 | padding-bottom: 8px;
603 | box-sizing: border-box;
604 | }
605 | .NotificationGrid th.NotificationGrid__header--sorted-ascending,
606 | .NotificationGrid th.NotificationGrid__header--sorted-descending {
607 | color: rgba(0, 0, 0, 0.87);
608 | }
609 | .NotificationGrid th.NotificationGrid__header--sorted-ascending:before,
610 | .NotificationGrid th.NotificationGrid__header--sorted-descending:before {
611 | font-family: 'Material Icons';
612 | font-weight: normal;
613 | font-style: normal;
614 | font-size: 24px;
615 | line-height: 1;
616 | letter-spacing: normal;
617 | text-transform: none;
618 | display: inline-block;
619 | word-wrap: normal;
620 | -moz-font-feature-settings: 'liga';
621 | font-feature-settings: 'liga';
622 | -webkit-font-feature-settings: 'liga';
623 | -webkit-font-smoothing: antialiased;
624 | font-size: 16px;
625 | content: "\e5d8";
626 | margin-right: 5px;
627 | vertical-align: sub;
628 | }
629 | .NotificationGrid th.NotificationGrid__header--sorted-ascending:hover,
630 | .NotificationGrid th.NotificationGrid__header--sorted-descending:hover {
631 | cursor: pointer;
632 | }
633 | .NotificationGrid th.NotificationGrid__header--sorted-ascending:hover:before,
634 | .NotificationGrid th.NotificationGrid__header--sorted-descending:hover:before {
635 | color: rgba(0, 0, 0, 0.26);
636 | }
637 | .NotificationGrid th.NotificationGrid__header--sorted-descending:before {
638 | content: "\e5db";
639 | }
640 | .NotificationGrid__select {
641 | width: 16px;
642 | }
643 | .NotificationGrid__cell--non-numeric.NotificationGrid__cell--non-numeric {
644 | text-align: left;
645 | }
646 | .CommentPost:not(.Post--hidden),
647 | .ReplyPlaceholder {
648 | min-height: 104px;
649 | margin-bottom: 15px;
650 | border-radius: 4px;
651 | }
652 | .DiscussionList-discussions {
653 | list-style-type: none;
654 | position: relative;
655 | box-shadow: 0 2px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
656 | transition: all .3s cubic-bezier(.25, .8, .25, 1);
657 | padding-left: 15px;
658 | margin-top: 20px;
659 | border-radius: 4px
660 | }
661 | .NotificationGrid-checkbox.highlighted .Checkbox:not(.disabled),
662 | .NotificationGrid-checkbox .Checkbox:hover:not(.disabled) {
663 | background: whitesmoke
664 | }
665 | .PostMention,
666 | .UserMention {
667 | background: #e4e8f6;
668 | color: #667199;
669 | border-radius: 4px;
670 | padding: 2px 5px;
671 | border: 0 !important;
672 | box-shadow: 0 2px 1px rgba(0, 0, 0, 0.16), 0 2px 1px rgba(0, 0, 0, 0.23);
673 | transition: all 0.3s cubic-bezier(.25, .8, .25, 1);
674 | }
675 | .FormControl {
676 | border: none;
677 | border-bottom: 2px solid rgba(0, 0, 0, 0.12);
678 | display: block;
679 | font-size: 16px;
680 | font-family: "Helvetica", "Arial", sans-serif;
681 | margin: 0;
682 | width: 100%;
683 | background: none;
684 | text-align: left;
685 | color: inherit;
686 | }
687 | .SocialFormControl {
688 | border: none;
689 | border-bottom: 2px solid rgba(0, 0, 0, 0.12);
690 | display: block;
691 | font-size: 16px;
692 | font-family: "Helvetica", "Arial", sans-serif;
693 | margin: 0;
694 | padding: 4px 0;
695 | width: 100%;
696 | background: none;
697 | text-align: left;
698 | color: inherit;
699 | }
700 | .NotificationList-header {
701 | padding: 12px 15px;
702 | box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.12);
703 | margin-bottom: 5px;
704 | }
705 | .RecipientsLabel .RecipientLabel:last-child {
706 | border-radius: 0 4px 4px 0;
707 | margin-right: 6px;
708 | }
709 | .Button--link {
710 | background: transparent !important;
711 | box-shadow: none;
712 | border: 0;
713 | text-transform: unset
714 | }
715 | .Button--link:hover {
716 | -webkit-filter: grayscale(20%);
717 | /* Safari 6.0 - 9.0 */
718 | filter: grayscale(20%);
719 | }
720 | .Button--link:active,
721 | .Button--link.active,
722 | .Button--link:focus,
723 | .Button--link.focus,
724 | .open>.Button--link.Dropdown-toggle {
725 | -webkit-filter: grayscale(40%);
726 | /* Safari 6.0 - 9.0 */
727 | filter: grayscale(40%);
728 | }
729 | .on.Checkbox--switch .Checkbox-display:before {
730 | left: 25px;
731 | margin-bottom: 7px;
732 | margin-top: -6px;
733 | height: 20px;
734 | width: 20px;
735 | border-radius: 50%;
736 | }
737 | .on.Checkbox--switch .Checkbox-display {
738 | background: lighten(@primary-color, 30%);
739 | left: 0;
740 | top: 5px;
741 | height: 14px;
742 | width: 36px;
743 | border-radius: 14px;
744 | cursor: pointer;
745 | }
746 | .Checkbox--switch .Checkbox-display:before {
747 | content: ' ';
748 | background: #fff;
749 | border-radius: 11px;
750 | box-shadow: 0 2px 4px rgba(0, 0, 0, 0.35);
751 | left: -4px;
752 | margin-bottom: 7px;
753 | height: 20px;
754 | width: 20px;
755 | border-radius: 50%;
756 | margin-top: -6px;
757 | }
758 | .Checkbox--switch .Checkbox-display {
759 | width: 50px;
760 | height: 28px;
761 | padding: 3px;
762 | position: relative;
763 | border-radius: 14px;
764 | background: #e4e8f6;
765 | transition: background-color .2s;
766 | -webkit-transition: background-color .2s;
767 | -moz-transition: background-color .2s;
768 | -ms-transition: background-color .2s;
769 | -o-transition: background-color .2s;
770 | background: rgba(0, 0, 0, .26);
771 | left: 0;
772 | top: 5px;
773 | height: 14px;
774 | width: 36px;
775 | border-radius: 14px;
776 | cursor: pointer;
777 | }
778 | .TagCloud a {
779 | margin-bottom: 5px;
780 | border-radius: 11px;
781 | }
782 | .Group {
783 | width: 0px;
784 | display: inline-block;
785 | text-align: center;
786 | color: #111;
787 | font-weight: bold;
788 | padding-left: 0;
789 | padding-right: 0;
790 | padding-bottom: 10px;
791 | padding-top: 0px;
792 | margin-right: 4px;
793 | box-shadow: none;
794 | border-radius: 4px;
795 | }
796 | .LoadingIndicator>.spinner {
797 | display: none;
798 | margin-top: 10px;
799 | }
800 | .LoadingIndicator {
801 | width: 100%;
802 | display: flex;
803 | justify-content: center;
804 | margin-top: 10px;
805 | }
806 | .LoadingIndicator:after {
807 | content: " ";
808 | display: table;
809 | width: 40px;
810 | height: 40px;
811 | border: 4px solid white;
812 | border-top: 4px solid@primary-color;
813 |
814 | border-left: 4px solid@primary-color;
815 |
816 | border-radius: 100%;
817 | animation: 2s linear infinite loading;
818 | border-collapse: separate;
819 | margin-top: 10px;
820 | }
821 | .Checkbox-display .LoadingIndicator:after {
822 | width: 20px;
823 | height: 20px;
824 | }
825 | @keyframes loading {
826 | 0% {
827 | transform: rotate(0deg);
828 | }
829 | 50% {
830 | transform: rotate(360deg);
831 | }
832 | 100% {
833 | transform: rotate(720deg);
834 | }
835 | }
836 | .ReplyPlaceholder {
837 | border: none;
838 | transition: all 0.3s cubic-bezier(.25, .8, .25, 1);
839 | border-radius: 4px;
840 | }
841 | /* Material Icons Beginning */
842 |
843 | .fa {
844 | font: normal normal normal 16px/1'Material Icons';
845 | display: inline-block;
846 | transform: translateY(10%);
847 | text-transform: none;
848 | letter-spacing: normal;
849 | word-wrap: normal;
850 | white-space: nowrap;
851 | direction: ltr;
852 | -webkit-font-smoothing: antialiased;
853 | text-rendering: optimizeLegibility;
854 | -moz-osx-font-smoothing: grayscale;
855 | font-feature-settings: 'liga';
856 | }
857 | .fa-comment-o:before {
858 | content: "message";
859 | }
860 | .fa-navicon:before,
861 | .fa-reorder:before,
862 | .fa-bars:before {
863 | content: "format_list_bulleted"
864 | }
865 | .fa-at:before {
866 | content: "alternate_email"
867 | }
868 | .fa-gear:before,
869 | .fa-cog:before {
870 | content: "settings"
871 | }
872 | .fa-comments-o:before {
873 | content: "forum"
874 | }
875 | .fa-star:before {
876 | content: "star"
877 | }
878 | .fa-star-o:before {
879 | content: "star_border"
880 | }
881 | .fa-flag:before {
882 | content: "flag"
883 | }
884 | .fa-warning:before,
885 | .fa-exclamation-triangle:before {
886 | content: "pan_tool"
887 | }
888 | .fa-trash-o:before {
889 | content: "delete"
890 | }
891 | .fa-sign-out:before {
892 | content: "directions_run"
893 | }
894 | .fa-wrench:before {
895 | content: "build"
896 | }
897 | .fa-user:before {
898 | content: "account_circle"
899 | }
900 | .fa-th-large:before {
901 | content: "label"
902 | }
903 | .fa-pencil::before {
904 | content: "edit";
905 | font-size: 19px;
906 | }
907 | .fa-code-fork:before {
908 | content: "call_split"
909 | }
910 | .fa-envelope-o:before {
911 | content: "email"
912 | }
913 | .fa-thumbs-o-up:before {
914 | content: "thumb_up"
915 | }
916 | .fa-thumbs-o-down:before {
917 | content: "thumb_down"
918 | }
919 | .fa-lock:before {
920 | content: "lock"
921 | }
922 | .fa-mail-reply:before,
923 | .fa-reply:before {
924 | content: "reply"
925 | }
926 | .fa-check:before {
927 | content: "check"
928 | }
929 | .fa-search:before {
930 | content: "search"
931 | }
932 | .fa-remove:before,
933 | .fa-close:before,
934 | .fa-times:before {
935 | content: "close"
936 | }
937 | .fa-bar-chart-o:before,
938 | .fa-bar-chart:before {
939 | content: "dashboard"
940 | }
941 | .fa-envelope:before {
942 | content: "email"
943 | }
944 | .fa-key:before {
945 | content: "vpn_key"
946 | }
947 | .fa-puzzle-piece:before {
948 | content: "extension"
949 | }
950 | .fa-paint-brush:before {
951 | content: "format_paint"
952 | }
953 | .fa-file-text-o:before {
954 | content: "insert_drive_file"
955 | }
956 | .fa-tags:before {
957 | content: "label"
958 | }
959 | .fa-eye:before {
960 | content: "remove_red_eye"
961 | }
962 | .fa-trash:before {
963 | content: "delete"
964 | }
965 | .fa-clock-o:before {
966 | content: "access_time"
967 | }
968 | .fa-chevron-left:before {
969 | content: "keyboard_arrow_left"
970 | }
971 | .fa-flash:before,
972 | .fa-bolt:before {
973 | content: "flash_on"
974 | }
975 | .fa-plus:before {
976 | content: "add"
977 | }
978 | .fa-map-o:before {
979 | content: "map"
980 | }
981 | .fa-edit:before,
982 | .fa-pencil-square-o:before {
983 | content: "border_color"
984 | }
985 | .fa-user-plus:before {
986 | content: "group_add"
987 | }
988 | .fa-group:before,
989 | .fa-users:before {
990 | content: "group"
991 | }
992 | .fa-i-cursor:before {
993 | content: "format_size"
994 | }
995 | .fa-thumb-tack:before {
996 | content: "place"
997 | }
998 | .fa-ban:before {
999 | content: "not_interested"
1000 | }
1001 | .fa-globe:before {
1002 | content: "language"
1003 | }
1004 | .Search-input:before {
1005 | display: inline-block;
1006 | font: normal normal normal 16px/1'Material Icons';
1007 | font-size: inherit;
1008 | text-rendering: auto;
1009 | -webkit-font-smoothing: antialiased;
1010 | -moz-osx-font-smoothing: grayscale;
1011 | content: "search";
1012 | float: left;
1013 | margin-right: -36px;
1014 | width: 36px;
1015 | font-size: 20px;
1016 | text-align: center;
1017 | position: relative;
1018 | padding: 0px 0;
1019 | line-height: 1.5;
1020 | pointer-events: none
1021 | }
1022 | .fa-ellipsis-v:before {
1023 | content: "more_vert"
1024 | }
1025 | .fa-drivers-license-o:before,
1026 | .fa-id-card-o:before {
1027 | content: "perm_identity"
1028 | }
1029 | .unread .DiscussionListItem-count:before {
1030 | content: "chat_bubble"
1031 | }
1032 | .fa-photo:before,
1033 | .fa-image:before,
1034 | .fa-picture-o:before {
1035 | content: "photo"
1036 | }
1037 | .fa-line-chart:before {
1038 | content: "timeline"
1039 | }
1040 | .fa-film:before {
1041 | content: "movie"
1042 | }
1043 | .fa-bold:before {
1044 | content: "format_bold"
1045 | }
1046 | .fa-minus:before {
1047 | content: "minimize";
1048 | }
1049 | .Composer-controls .fa-minus:before {
1050 | content: "minimize";
1051 | }
1052 | .fa-minus-square:before {
1053 | content: "minimize"
1054 | }
1055 | .fa-address-book-o:before {
1056 | content: "contacts"
1057 | }
1058 | .fa-money:before {
1059 | content: "money"
1060 | }
1061 | .fa-crop:before {
1062 | content: "crop"
1063 | }
1064 | .fa-language:before {
1065 | content: "language"
1066 | }
1067 | .fa-thumbs-up:before {
1068 | content: "thumb_up"
1069 | }
1070 | .fa-angle-double-right:before {
1071 | content: "subdirectory_arrow_right"
1072 | }
1073 | .fa-pencil-square:before {
1074 | content: "edit_location"
1075 | }
1076 | .fa-sticky-note:before {
1077 | content: "note"
1078 | }
1079 | .fa-refresh:before {
1080 | content: "refresh"
1081 | }
1082 | .fa-minus:before {
1083 | content: "remove"
1084 | }
1085 | .fa-expand:before {
1086 | content: "fullscreen"
1087 | }
1088 | .fa-compress:before {
1089 | content: "fullscreen_exit"
1090 | }
1091 | .fa-ellipsis-h:before {
1092 | content: "more_horiz";
1093 | }
1094 | .fa-commenting-o:before {
1095 | content: "comment";
1096 | }
1097 | .fa-play:before {
1098 | content: "play_arrow"
1099 | }
1100 | .fa-file-photo-o:before,
1101 | .fa-file-picture-o:before,
1102 | .fa-file-image-o:before {
1103 | content: "collections"
1104 | }
1105 | .fa-file-movie-o:before,
1106 | .fa-file-video-o:before {
1107 | content: "video_library"
1108 | }
1109 | .fa-times-rectangle-o:before,
1110 | .fa-window-close-o:before {
1111 | content: "not_interested"
1112 | }
1113 | .fa-vcard:before,
1114 | .fa-address-card:before {
1115 | content: "video_label"
1116 | }
1117 | .fa-vcard-o:before,
1118 | .fa-address-card-o:before {
1119 | content: "video_label"
1120 | }
1121 | .fa-fa:before,
1122 | .fa-font-awesome:before {
1123 | content: "flag"
1124 | }
1125 | .fa-italic:before {
1126 | content: "format_italic"
1127 | }
1128 | .fa-paste:before,
1129 | .fa-clipboard:before {
1130 | content: "wallpaper"
1131 | }
1132 | .fa-font:before {
1133 | content: "font_download"
1134 | }
1135 | .fa-ge:before,
1136 | .fa-empire:before {
1137 | content: "settings"
1138 | }
1139 | .fa-table:before {
1140 | content: "table_chart"
1141 | }
1142 | .fa-video-camera:before {
1143 | content: "videocamera"
1144 | }
1145 | .fa-comments:before {
1146 | content: "forum"
1147 | }
1148 | .fa-circle-o:before {
1149 | content: "trip_origin"
1150 | }
1151 | .fa-columns:before {
1152 | content: "view_column"
1153 | }
1154 | .fa-dashboard:before,
1155 | .fa-tachometer:before {
1156 | content: "av_timer"
1157 | }
1158 | .fa-code:before {
1159 | content: "code"
1160 | }
1161 | .fa-toggle-up:before,
1162 | .fa-caret-square-o-up:before {
1163 | content: "arrow_drop_up"
1164 | }
1165 | .fa-caret-down:before {
1166 | content: "arrow_drop_down"
1167 | }
1168 | .fa-filter:before {
1169 | content: "filter_list"
1170 | }
1171 | .fa-shopping-bag:before {
1172 | content: "shopping_cart"
1173 | }
1174 | .fa-retweet:before {
1175 | content: "autorenew"
1176 | }
1177 | .fa-home:before {
1178 | content: "home"
1179 | }
1180 | .fa-map-marker:before {
1181 | content: "place"
1182 | }
1183 | .fa-exchange:before {
1184 | content: "compare_arrows"
1185 | }
1186 | .fa-eye-slash:before {
1187 | content: "remove_red_eye"
1188 | }
1189 | .fa-user-circle:before {
1190 | content: "account_circle"
1191 | }
1192 | .fa-check-circle-o:before {
1193 | content: "check_circle"
1194 | }
1195 | .fa-smile-o:before {
1196 | content: "tag_faces"
1197 | }
1198 | .fa-mail-reply-all:before,
1199 | .fa-reply-all:before {
1200 | content: "reply_all"
1201 | }
1202 | .fa-share-alt:before {
1203 | content: "share"
1204 | }
1205 | .fa-shield:before {
1206 | content: "security"
1207 | }
1208 | .fa-sitemap:before {
1209 | content: "line_style"
1210 | }
1211 | .fa-exclamation:before {
1212 | content: "warning"
1213 | }
1214 | .fa-feed:before,
1215 | .fa-rss:before {
1216 | content: "rss_feed"
1217 | }
1218 | .fa-circle:before {
1219 | content: "lens"
1220 | }
1221 | .fa-angle-double-up:before {
1222 | content: "arrow_upward"
1223 | }
1224 | .fa-angle-double-down:before {
1225 | content: "arrow_downward"
1226 | }
1227 | .fa-plus-circle:before {
1228 | content: "add_circle"
1229 | }
1230 | .fa-tag:before {
1231 | content: "label"
1232 | }
1233 | .fa-bullseye:before {
1234 | content: "trip_origin"
1235 | }
1236 | .PostMention::before {
1237 | content: "alternate_email";
1238 | }
1239 | /* Material Icons Ending */
1240 |
1241 | /* Font Awesome Icons Beginning */
1242 |
1243 | .fa-twitter:before {
1244 | display: inline-block;
1245 | font: normal normal normal 14px/1 FontAwesome;
1246 | font-size: inherit;
1247 | text-rendering: auto;
1248 | -webkit-font-smoothing: antialiased;
1249 | -moz-osx-font-smoothing: grayscale;
1250 | content: "\f099"
1251 | }
1252 | .fa-youtube-play:before {
1253 | display: inline-block;
1254 | font: normal normal normal 14px/1 FontAwesome;
1255 | font-size: inherit;
1256 | text-rendering: auto;
1257 | -webkit-font-smoothing: antialiased;
1258 | -moz-osx-font-smoothing: grayscale;
1259 | content: "\f16a"
1260 | }
1261 | .fa-github:before {
1262 | display: inline-block;
1263 | font: normal normal normal 14px/1 FontAwesome;
1264 | font-size: inherit;
1265 | text-rendering: auto;
1266 | -webkit-font-smoothing: antialiased;
1267 | -moz-osx-font-smoothing: grayscale;
1268 | content: "\f09b"
1269 | }
1270 | .fa-facebook-f:before,
1271 | .fa-facebook:before {
1272 | display: inline-block;
1273 | font: normal normal normal 14px/1 FontAwesome;
1274 | font-size: inherit;
1275 | text-rendering: auto;
1276 | -webkit-font-smoothing: antialiased;
1277 | -moz-osx-font-smoothing: grayscale;
1278 | content: "\f09a"
1279 | }
1280 | /* Font Awesome Icons Ending */
1281 |
1282 | .TagsLabel .TagLabel {
1283 | border-radius: 12px;
1284 | margin-right: 3px;
1285 | }
1286 | .TagsLabel .TagLabel:first-child {
1287 | border-radius: 4px 0 0 4px;
1288 | border-radius: 12px;
1289 | margin-right: 3px;
1290 | }
1291 | .TagsLabel .TagLabel:last-child {
1292 | border-radius: 0 4px 4px 0;
1293 | border-radius: 12px;
1294 | }
1295 | .TagsLabel .TagLabel:first-child:last-child {
1296 | border-radius: 4px;
1297 | border-radius: 12px;
1298 | }
1299 | .DiscussionHero .TagsLabel .TagLabel {
1300 | background: transparent;
1301 | border-radius: 12px !important;
1302 | font-size: 14px
1303 | }
1304 | .DiscussionHero .TagsLabel .TagLabel {
1305 | background: transparent;
1306 | border-radius: 12px !important;
1307 | font-size: 14px
1308 | }
1309 | /* Composer Properties Beginning */
1310 |
1311 | .Composer.minimized {
1312 | height: 46px;
1313 | cursor: pointer;
1314 | background: #f6f1e4;
1315 | border-radius: 4px;
1316 | }
1317 | .Composer {
1318 | border-radius: 4px;
1319 | background: rgba(255, 255, 255, 0.95);
1320 | transform: translateZ(0);
1321 | position: relative;
1322 | height: 300px;
1323 | -webkit-transition: background 0.2s, box-shadow 0.2s;
1324 | -o-transition: background 0.2s, box-shadow 0.2s;
1325 | transition: background 0.2s, box-shadow 0.2s
1326 | }
1327 | .ComposerBody-avatar {
1328 | float: left;
1329 | width: 64px;
1330 | height: 64px;
1331 | border-radius: 64px;
1332 | font-size: 32px;
1333 | line-height: 64px;
1334 | left: -85px;
1335 | overflow: hidden
1336 | }
1337 | /* Composer Properties End */
1338 |
1339 | .Search-results {
1340 | max-height: 70vh;
1341 | overflow: auto;
1342 | left: auto;
1343 | right: 0;
1344 | border-radius: 4px;
1345 | }
1346 | .EventPost,
1347 | .EventPost a {
1348 | color: #998a66;
1349 | margin-bottom: 15px;
1350 | }
1351 | .TagLabel.colored .TagLabel-text {
1352 | color: #fff !important;
1353 | }
1354 | .TagsLabel .TagLabel {
1355 | border-radius: 0;
1356 | padding-top: 2px;
1357 | padding-bottom: 2px;
1358 | }
1359 | .TagLabel.untagged {
1360 | background: transparent;
1361 | border: 1px dotted #998a66;
1362 | border-radius: 18px;
1363 | color: #998a66;
1364 | padding-top: 2px;
1365 | padding-bottom: 2px;
1366 | }
1367 | .RecipientLabel.none {
1368 | background: transparent;
1369 | border: 1px dotted #998a66;
1370 | color: #998a66;
1371 | border-radius: 18px;
1372 | padding-top: 2px;
1373 | padding-bottom: 2px;
1374 | }
1375 | .Dropdown-menu {
1376 | position: absolute;
1377 | top: 100%;
1378 | right: 0%;
1379 | z-index: 1030;
1380 | width: 160px;
1381 | padding: 8px 0;
1382 | margin: 7px 0;
1383 | background: #fff;
1384 | border-radius: 4px;
1385 | -webkit-box-shadow: 0 2px 6px rgba(0, 0, 0, 0.35);
1386 | -moz-box-shadow: 0 2px 6px rgba(0, 0, 0, 0.35);
1387 | box-shadow: 0 2px 6px rgba(0, 0, 0, 0.35);
1388 | list-style: none;
1389 | text-align: left;
1390 | color: #111;
1391 | font-size: 13px;
1392 | line-height: 1.7;
1393 | }
1394 | .Button--text {
1395 | box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
1396 | border: none;
1397 | border-radius: 4px;
1398 | position: relative;
1399 | height: 36px;
1400 | margin: 0;
1401 | min-width: 44px;
1402 | padding: 0 16px;
1403 | display: inline-block;
1404 | font-family: "Roboto", "Helvetica", "Arial", sans-serif;
1405 | font-size: 14px;
1406 | font-weight: 500;
1407 | text-transform: uppercase;
1408 | line-height: 1;
1409 | letter-spacing: 0;
1410 | overflow: hidden;
1411 | will-change: box-shadow;
1412 | transition: box-shadow .2s cubic-bezier(.4, 0, 1, 1), background-color .2s cubic-bezier(.4, 0, .2, 1), color .2s cubic-bezier(.4, 0, .2, 1);
1413 | outline: none;
1414 | cursor: pointer;
1415 | text-decoration: none;
1416 | text-align: center;
1417 | line-height: 36px;
1418 | vertical-align: middle;
1419 | background-color: transparent;
1420 | }
1421 | .Button--text:hover {
1422 | -webkit-filter: grayscale(20%);
1423 | filter: grayscale(20%);
1424 | }
1425 | .Button--text:active,
1426 | .Button--text.active,
1427 | .open>.Button--text.Dropdown-toggle {
1428 | -webkit-filter: grayscale(40%);
1429 | filter: grayscale(40%);
1430 | }
1431 | .item-changePassword {
1432 | padding-right: 5px;
1433 | }
1434 | .ExtensionListItem {
1435 | width: 120px;
1436 | height: 160px;
1437 | margin-right: 15px;
1438 | margin-bottom: 15px;
1439 | box-shadow: @default-shadow;
1440 |
1441 | }
1442 | .ExtensionIcon {
1443 | width: 120px;
1444 | height: 120px;
1445 | background: #e4ecf6;
1446 | border-radius: 0;
1447 | color: #667c99;
1448 | display: inline-block;
1449 | font-size: 60px;
1450 | line-height: 120px;
1451 | text-align: center
1452 | }
1453 | .ExtensionListItem.disabled .ExtensionListItem-title {
1454 | opacity: 0.5;
1455 | color: #667c99;
1456 | padding-left: 2px;
1457 | }
1458 | .ExtensionListItem-title {
1459 | display: block;
1460 | font-size: 13px;
1461 | font-weight: bold;
1462 | margin-top: 3px;
1463 | white-space: nowrap;
1464 | overflow: hidden;
1465 | text-overflow: ellipsis;
1466 | cursor: pointer;
1467 | padding-left: 4px
1468 | }
1469 | .ExtensionListItem-version {
1470 | color: #aaa;
1471 | font-size: 11px;
1472 | font-weight: normal;
1473 | padding-left: 4px
1474 | }
1475 | .ExtensionIcon:hover {
1476 | background-color: #000;
1477 | opacity: 0.5;
1478 | transition: all .3s cubic-bezier(.25, .8, .25, 1);
1479 | }
1480 | li.item-tag1,
1481 | li.item-tag2,
1482 | li.item-tag3,
1483 | li.item-tag4,
1484 | li.item-tag5,
1485 | li.item-tag6,
1486 | li.item-tag7,
1487 | li.item-tag8,
1488 | li.item-tag9,
1489 | li.item-tag10,
1490 | li.item-tag11,
1491 | li.item-tag12,
1492 | li.item-tag13,
1493 | li.item-tag14,
1494 | li.item-tag15,
1495 | li.item-tag16,
1496 | li.item-tag17,
1497 | li.item-tag18,
1498 | li.item-tag19,
1499 | li.item-tag20 {
1500 | padding-left: 4px;
1501 | }
1502 | .AdminLinkButton-description {
1503 | margin-left: 6px;
1504 | display: none
1505 | }
1506 | .App-nav .AdminNav .Dropdown-menu>li>a {
1507 | padding: 15px 15px 15px 39px;
1508 | display: block;
1509 | text-decoration: none;
1510 | white-space: normal
1511 | }
1512 | .sideNav .Dropdown--select .Dropdown-menu>li>a .Button-icon {
1513 | float: left;
1514 | margin-left: -26px;
1515 | margin-top: 1px;
1516 | font-size: 19px;
1517 | border-radius: 4px;
1518 | padding-bottom: 3px;
1519 | margin-bottom: 0px;
1520 | }
1521 | .Badge,
1522 | .Badge .Badge-icon {
1523 | font-size: 16px;
1524 | padding-top: .3px;
1525 | padding-right: .2px;
1526 | }
1527 | /* Fixes bug with hovering hover discussions list. */
1528 |
1529 | .DiscussionList-discussions {
1530 | list-style-type: none;
1531 | position: relative;
1532 | box-shadow: 0 2px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
1533 | transition: all .3s cubic-bezier(.25, .8, .25, 1);
1534 | padding-left: 15px;
1535 | margin-top: 20px;
1536 | border-radius: 4px;
1537 | padding-right: 15px;
1538 | }
--------------------------------------------------------------------------------
/resources/locale/en.yml:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Extum/material/018a2e149b496bc804c1d97730ba784295fd6821/resources/locale/en.yml
--------------------------------------------------------------------------------
/src/Listeners/AddClientAssets.php:
--------------------------------------------------------------------------------
1 | listen(ConfigureWebApp::class, [$this, 'configureWebApp']);
26 | $events->listen(ConfigureLocales::class, [$this, 'addLocales']);
27 | }
28 |
29 | /**
30 | * Modifies the client view for forum/admin.
31 | *
32 | * @param ConfigureWebApp $event
33 | */
34 | public function configureWebApp(ConfigureWebApp $event)
35 | {
36 | if ($event->isAdmin()) {
37 | $event->addAssets([
38 | __DIR__.'/../../resources/less/admin.less',
39 | ]);
40 | }
41 | if ($event->isForum()) {
42 | $event->addAssets([
43 | __DIR__.'/../../resources/less/app.less',
44 | ]);
45 | }
46 |
47 | $view = $event->view;
48 |
49 | $view->addHeadString("");
50 | $view->addHeadString("");
51 | $view->addHeadString("");
52 | $view->addHeadString("");
53 | $view->addHeadString("");
54 | $view->addHeadString("");
55 | $view->addHeadString("");
56 | $view->addFootString("");
57 | }
58 |
59 | /**
60 | * Provides i18n files.
61 | *
62 | * @param ConfigureLocales $event
63 | */
64 | public function addLocales(ConfigureLocales $event)
65 | {
66 | foreach (new DirectoryIterator(__DIR__.'/../../resources/locale') as $file) {
67 | if ($file->isFile() && in_array($file->getExtension(), ['yml', 'yaml'])) {
68 | $event->locales->addTranslations($file->getBasename('.'.$file->getExtension()), $file->getPathname());
69 | }
70 | }
71 | }
72 | }
73 |
--------------------------------------------------------------------------------