我正在尝试将自定义颜色设置为 Drupal 9 中 html 元素的样式属性的 CSS 变量。
/**
* Preprocess HTML
*/
function THEME_preprocess_html(&$vars)
{
$colors = [
'cyan' => '#009FDF',
'magenta' => '#EF3F6B',
'green' => '#62BB46',
'orange' => '#EB5F0C'
];
$colorKey = array_rand($colors);
$store = \Drupal::service('tempstore.private')->get('theme');
$theme = $store->get('color');
if ($theme) {
$vars['attributes']['style'][] = `--theme-color: ${$colors[$theme]}`;
} else {
$store->set('color', $colorKey);
$theme = $store->get('color');
$color = $colors[$theme];
$vars['attributes']['style'][] = `--theme-color: ${$color}`;
}
}
我需要在第一页访问时设置颜色并将其存储在所有页面路径中,因此如果在第一页访问时它落在它上面,magenta
它应该为所有内部链接保持该颜色。但是如果用户重新加载或关闭窗口并导航回站点,它应该选择不同的随机颜色来使用。
我什至可能没有使用正确的方法来完成这个,欢迎任何反馈!谢谢!