对于我在工作中的最新项目,我被告知为BigCommerce开发自定义(模板)主题,以便我们可以通过BigCommerce主题市场分发它们。我来自Wordpress背景,所以实现这一飞跃让我的头脑旋转一点点,但我想我理解他们的平台在大多数情况下是如何组合在一起的。 Handlebars表达式调用了一些组件,这些组件可以在模板文件中重新排列,而任何默认样式都可以通过config.json应用,客户端可以通过主题编辑器GUI进行基本更改。
但是,我仍然迷失在这里。一些设计要求需要进行大量的CSS更改,而不仅仅是JSON变量。我有一个完全开发的HTML / CSS主题我想通过将其转换为BigCommerce将接受的格式来使用,但我找不到任何关于如何执行此操作的文档。我可以繁琐地修改每个现有的SCSS文件,或者我可以覆盖它们,就好像我正在开发一个子主题。我很想完全废弃SCSS并重新开始,但是我需要重新创建用于在需要时引入JSON的SASS函数。
当我开始使用空白画布(或者最多是粗略的草图)并在其上构建时,我的工作要好得多,而不是将完整的产品变形为我需要的东西。有没有办法用BigCommerce做到这一点?
答案 0 :(得分:1)
我发布这个问题已经有一段时间了,从那以后我学到了更多关于Stencil开发的知识。
这里简短的回答是,加上,不要删除。 BigCommerce的Cornerstone主题不是像wordpress的_underscores这样的空白主题。这是一个完全开发但非常基本的主题。最好尽量避免编辑其默认文件,因为它可能会在将来更新,并可能覆盖您的更改。而是添加包含自定义主题名称的文件夹。例如,您通常会看到:
/scss/layouts/body/_body.scss
因此,您可以添加自己的样式,同时保持上述结构的完整性:
/scss/layouts/customtheme/body/_body.scss
我们不必覆盖前 _body.scss 中定义的样式,因为我们还需要将新创建的样式导入
/scss/layouts/_layouts.scss
在此文件中,您会在顶部看到此代码段:
// =============================================================================
// LAYOUTS
// =============================================================================
// Global layouts
// -----------------------------------------------------------------------------
// Header
@import "header/header";
// Page
@import "body/body";
由于下划线定义了SCSS局部,我们知道只是创建_body.scss不会做任何事情。我们必须找到主要的SCSS文件并添加 @import“body”,或者在这种情况下,我们必须将它添加到导入主文件的另一个部分。所以只需删除或注释掉默认的
即可//@import "body/body";
并将其替换为
@import "customtheme/body/body";
你去吧。您没有覆盖或竞争任何现有的样式,并且您已经定制了身体的外观。您也可以添加自己的组件,但这是另一个主题。可以说,
中有更多的SCSS文件/ SCSS /组件/
他们遵循相同的原则。