Где мы храним стили CSS и приложение Ember CLI Pods?

Я читаю http://www.ember-cli.com/, где говорится:

Ember CLI поддерживает простой CSS из коробки. Вы можете добавить свои стили CSS в app / styles / app.css, и они будут обслуживаться в assets / application-name.css.

Есть ли соглашение о структуре папок, которому я должен следовать? Что-то вроде:

app/styles/application.css
app/styles/users/index.css
app/styles/users/new.css
etc

Или это соглашение для хранения всех пользовательских CSS в app.css?

Есть ли особые соображения, которые я должен учитывать при применении этого в приложении Pods?

3 ответа

Решение

Вы не одиноки в борьбе с ужасными глобальными проблемами CSS, которые делают разработку приложения громоздкой.

К счастью для вас, решение Ember 2.0, которое выйдет этим летом, уже не за горами. Однако вы можете воспользоваться этой возможностью сейчас, если вы чувствуете, что хотите, или просто хотите узнать, о чем я говорю в отношении Ember Component CSS, который является основным членом Ember.js.

https://www.npmjs.com/package/ember-component-css

Конечно, это не полное решение вашей проблемы, потому что это просто для компонентов, но поскольку компоненты являются неотъемлемой частью рабочего процесса Ember, я думаю, вы обнаружите, что сохранение CSS/SASS вместе с ними будет удобно в модулях. структура папок.

Кажется, что большинство людей разбивают css файлы на папки, названные в честь их маршрутов для организационных целей.

Обновление: в будущей версии Ember устаревшие модули будут поддерживаться в пользу новой адаптации базовой команды Ember системы унификации модулей для управления ресурсами проекта. Вы можете прочитать больше здесь: https://github.com/emberjs/rfcs/blob/master/text/0143-module-unification.md

Мы разрабатываем надстройку, которая позволяет вам помещать ваши sass-файлы в ваш каталог pods!

Дайте ему попытку:

https://github.com/DudaDev/ember-cli-sass-pods

Скажем, у вас есть контактный маршрут и компонент контакт-бокса

Генерация обычного маршрута и компонента:

ember g route contacts -p
ember g component contact-box -p

Затем используйте мощность ember-cli-sass-pods и создайте стиль:

ember g style contacts -p
ember g style components/contact-box -p

Ваша удивительная файловая структура будет:

app/

app/contacts
app/contacts/route.js
app/contacts/template.hbs
app/contacts/style.scss

app/components/
app/components/contact-box
app/components/contact-box/component.js
app/components/contact-box/template.hbs
app/components/contact-box/style.scss

Я не Ember Guru, однако я хотел бы присоединиться к некоторым полезным соглашениям и инструментам, которые сообщество Ember применяет в отношении таблиц стилей, поскольку мы принимаем будущее, основанное на компонентах.

Примечание требует: ember-cli а также scss ,

С помощью этого поста: Agile Design Manifesto. Вам не нужно вставлять все ваши таблицы стилей в структуру pod, чтобы получить преимущества, пока вы...

"Организовать SCSS по маршруту и ​​компонентам"

В отношении компонентов в статье предлагается сохранить глобальный выбор:

> stylesheets/components/_flash_messages.scss

/* 
Base Styling for the Flash Messages component - how it will appear globally.
*/
.flash-messages {
  background-color: $default-flash-color;
}

Для ресурсов вы можете использовать селекторы идентификаторов и соглашения Ember, чтобы шаблон с заданным идентификатором появлялся только один раз, а ваш код SCSS мог выглядеть так:

> stylesheets/routes/_posts.scss

/* 
Global Styling for the "Posts" resource.  
It's an ID because it's guaranteed to only ever appear on the page once.
Thanks Ember!
*/
#posts {
  @import "show";
  @import "new";
  @import "edit";
}

Вы можете использовать это, чтобы переопределить глобальное моделирование и создать искусственную область CSS.

Тогда импортированные стили маршрута показа могут быть:

> stylesheets/routes/posts/_show.scss

/* 
Styling here is specifically for this on the "Show" route of the "Posts" resource.  
Most likely, it's empty, but it's a good place to override the global appearance of components, and ensure those changes are contained to this route only. 
*/

#posts-show {
  .flash-messages {
    background-color: $posts-show-flash-color;
  }
}

Учитывая эти рекомендации, вы можете использовать такой модуль, как: ember-cli-sass-pods, чтобы вы могли генерировать таблицы стилей в ваших маршрутах или компонентных модулях. Затем вам нужно будет добавить @import объявления к сгенерированным файлам в вашем app.scss файл.

Другие вопросы по тегам