webksde / drowl_base
DROWL Drupal (Base-)Theme 基于 Radix 6.x。
Requires
- drupal/core: ^10.3 || ^11
- drupal/radix: ^6.0@rc
- drupal/twig_tweak: ^3.2
Suggests
- bower-asset/js-cookie: ^2; Necessary for this theme, but needs custom steps to be required, see https://www.drupal.org/docs/develop/using-composer/manage-dependencies#third-party-libraries
- drupal/blazy: Used and extended by this theme (optional).
- drupal/photoswipe: Used and extended by this theme (optional).
- drupal/slick: Used and extended by this theme (optional).
- npm-asset/simple-parallax-js: ^5; Necessary for this theme, but needs custom steps to be required, see https://www.drupal.org/docs/develop/using-composer/manage-dependencies#third-party-libraries
- 2.x-dev
- 2.0.0-alpha12
- 2.0.0-alpha11
- 2.0.0-alpha10
- 2.0.0-alpha9
- 2.0.0-alpha8
- 2.0.0-alpha7
- 2.0.0-alpha6
- 2.0.0-alpha5
- 2.0.0-alpha4
- 2.0.0-alpha3
- 2.0.0-alpha2
- 2.0.0-alpha1
- 1.x-dev
- 1.0.109
- 1.0.108
- 1.0.107
- 1.0.105
- 1.0.103
- 1.0.102
- 1.0.101
- 1.0.100
- 1.0.99
- 1.0.98
- 1.0.97
- 1.0.96
- 1.0.95
- 1.0.94
- 1.0.93
- 1.0.92
- 1.0.91
- 1.0.90
- 1.0.89
- 1.0.88
- 1.0.87
- 1.0.86
- 1.0.85
- 1.0.84
- 1.0.83
- 1.0.82
- 1.0.81
- 1.0.80
- 1.0.79
- 1.0.78
- 1.0.77
- 1.0.76
- 1.0.75
- 1.0.74
- 1.0.73
- 1.0.72
- 1.0.71
- 1.0.70
- 1.0.69
- 1.0.68
- 1.0.67
- 1.0.66
- 1.0.65
- 1.0.64
- 1.0.63
- 1.0.62
- 1.0.61
- 1.0.60
- 1.0.59
- 1.0.58
- 1.0.57
- 1.0.56
- 1.0.55
- 1.0.54
- 1.0.53
- 1.0.52
- 1.0.51
- 1.0.50
- 1.0.49
- 1.0.48
- 1.0.47
- 1.0.46
- 1.0.45
- 1.0.44
- 1.0.43
- 1.0.42
- 1.0.41
- 1.0.40
- 1.0.39
- 1.0.38
- 1.0.37
- 1.0.36
- 1.0.35
- 1.0.34
- 1.0.33
- 1.0.31
- 1.0.30
- 1.0.29
- 1.0.28
- 1.0.27
- 1.0.26
- 1.0.25
- 1.0.24
- 1.0.23
- 1.0.22
- 1.0.21
- 1.0.20
- 1.0.19
- 1.0.18
- 1.0.17
- 1.0.16
- 1.0.15
- 1.0.14
- 1.0.13
- 1.0.12
- 1.0.11
- 1.0.10
- 1.0.9
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- dev-75-blazy-slick-3-compatibility-drowl_base-1-x-2-x
- dev-77-shorten-search-input-placeholder
- dev-67-overview_link-string-value-found-but-an-array-or-an-object-is-required
This package is auto-updated.
Last update: 2024-09-30 17:32:30 UTC
README
[目录]
有用的文档
指南
- 遵循 Drupal 指南:https://www.drupal.org/docs/develop/theming-drupal
- 使用组件 (SDC) 以便所有可重用模板片段
- 由于 Bootstrap 是框架,因此当涉及到 CSS 类命名约定时,我们必须处理两种不同的约定。Drupal 倾向于 BEM (https://getbem.com/naming),而 Bootstrap 使用某种类型的 OOCSS。我们利用这一点,并使用 BEM 为我们的自定义页面结构和组件,以便更好地区分它们。如果您认为可以在 Bootstrap 类旁边使用 BEM 类,那么请这样做。例如:‘page__navar navbar’ 是可以接受的。
扩展 Bootstrap
组件
按钮
- btn-width-full: 将按钮扩展到 100% 宽度(类似于旧的 btn-block 类)
助手
Body 类
- current-breakpoint-is-x: 当前活动断点由 JS 确定。
- current-breakpoint-is-smaller-x: 如果当前断点小于断点 x。
- current-breakpoint-is-larger-x: 如果当前断点大于断点 x。
- current-vw-is-smaller-container-max: 如果当前视口宽度小于 BS .container(最大页面宽度),则设置。
实用工具
文本
- text-muted: 自 BS 5.3 起已弃用,并由无意义的类替换。因此我们重新发明了它。
JavaScript
防抖 / 节流
Drupal.drowl_base.functions.debounce(function,delay);
// Example usage:
new ResizeObserver(Drupal.drowl_base.functions.debounce(function(){
// Do stuff!
}, 600));
获取当前断点
// Returns: Breakpoint Name (string), example: "lg"
Drupal.drowl_base.functions.getCurrentBreakpoint();
获取滚动条宽度
// Returns: Pixel value (decimal), example: 15
Drupal.drowl_base.functions.getScrollbarWidth();
事件
监听视口大小变化
document.addEventListener(
"drowl_base:resize",
(e) => {
/* … */
},
false,
);
SDC 单目录组件
组件使用
基本上,您有两种方法可以添加组件
包含
包含一个组件,并传递一些参数,但不要更改其内容。
{% include 'drowl_base:block' with {
html_tag: 'section',
block_utility_classes: [
'my-3',
'block--local-tasks',
],
}%}
嵌入
包含一个组件,并使用块覆盖来更改其内容。
{% embed 'drowl_base:metaheader' with {
color: 'light',
navbar_utility_classes: ['bg-light'],
} %}
{% block left %}
Replacement
{% endblock %}
{% block right %}
Replacement
{% endblock %}
{% endembed %}
创建新组件
首选使用 drush generate: drush generate theme:sdc:component
覆盖现有组件
只有主题可以覆盖组件(模块不能覆盖)。要使主题覆盖组件,请使用 mytheme.component.yml 文件中的 replaces 键。
覆盖 DROWL 基础样式表
所有样式表都使用 CSS 变量编写(尽可能)。因此,在大多数情况下,您可能只需修改您的 SASS 变量(因此您的 drowl_child.variables.css 文件已更新)。
如果您需要修改或删除 DROWL 基础样式,可以简单地删除或覆盖相应的 Drupal 库。
库
Slick
DROWL 基础有其自己的 Slick Carousel 主题,使用 CSS 变量进行各种调整。
配置变量
--grid-gutter: var(--bs-grid-gutter);
--direction-nav-top: calc(50% - (var(--dot-nav-reserved-outer-space) * 0.5));
--direction-nav-item-width: var(--icon-size-lg);
--direction-nav-item-height: var(--icon-size-lg);
--direction-nav-icon-size: var(--icon-size-md);
--direction-nav-item-bg: var(--bs-light-glass);
--direction-nav-item-color: var(--bs-dark-glass);
--direction-nav-item-bg-hover: var(--bs-light);
--direction-nav-item-color-hover: var(--bs-dark);
--dot-nav-item-width: var(--icon-size-xs);
--dot-nav-item-height: var(--icon-size-xs);
--dot-nav-item-radius: 50%;
--dot-nav-grid-gutter: .35rem;
--dot-nav-item-color: var(--bs-light-glass);
--dot-nav-item-color-hover: var(--bs-primary);
--dot-nav-item-color-active: var(--bs-white);
// Dot nav alignment, available options: start, center, end.
--dot-nav-alignment: center;
查看 libraries/slick.scss 以获取更多详细信息。
外部控制
要在外部显示方向 + 点导航,请在任何包装器上使用类 slick-controls-outside
,或直接在 .slick 包装器上使用 slick--controlsoutside
(首选)。
如果 slick__nav 大于视口宽度,则它将切换到由 CSS 变量 --direction-nav-outside-fallback-behavoir 定义的样式(可能是 'overlay'、'inset' 或 'hide')。
内嵌控制
要在内容之外显示方向 + 点导航,同时不将方向导航移出容器,请在任何包装器上使用类 slick-controls-inset
,或在 .slick 包装器上直接使用 slick--controlsInset
(推荐)。
有关详细信息,请参阅 libraries/slick.scss。
允许溢出
对于需要可见溢出的幻灯片(例如,因为您在内部有带有 box-shadow 的元素),您可以在任何包装器上设置 slick-allow-overflow
。在部分包装器上设置 slick-allow-overflow-parent
非常重要,以防止水平溢出。否则,文档将变为可水平滚动的。