<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <title>Two ways to create a theme, why?</title>
  <link rel="self" href="https://liferay.dev/c/message_boards/find_thread?p_l_id=119785294&amp;threadId=99776352" />
  <subtitle>Two ways to create a theme, why?</subtitle>
  <id>https://liferay.dev/c/message_boards/find_thread?p_l_id=119785294&amp;threadId=99776352</id>
  <updated>2026-04-03T23:04:44Z</updated>
  <dc:date>2026-04-03T23:04:44Z</dc:date>
  <entry>
    <title>RE: Two ways to create a theme, why?</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=110840622" />
    <author>
      <name>Alessandro Candini</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=110840622</id>
    <updated>2018-08-30T07:12:16Z</updated>
    <published>2018-08-30T07:12:16Z</published>
    <summary type="html">&lt;p&gt;Another useful answer on &lt;a
    href="https://github.com/liferay/liferay-themes-sdk/issues/49"&gt;this
    github thread&lt;/a&gt;.&lt;/p&gt;</summary>
    <dc:creator>Alessandro Candini</dc:creator>
    <dc:date>2018-08-30T07:12:16Z</dc:date>
  </entry>
  <entry>
    <title>RE: Two ways to create a theme, why?</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=99778733" />
    <author>
      <name>Olaf Kock</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=99778733</id>
    <updated>2017-11-30T09:42:19Z</updated>
    <published>2017-11-30T09:42:19Z</published>
    <summary type="html">&lt;div class="quote-title"&gt;Alessandro Candini:&lt;/div&gt;&lt;blockquote&gt;It&amp;#39;s not very clear to me why should I use the blade way and expecially what is the workflow to get things done.&lt;br /&gt;&lt;br /&gt;Is maybe the blade way better if you use the IDE?&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;I hear that node is somewhat complicated on Windows, and that it&amp;#39;s harder to use in an enterprise environment, with enforced proxies etc. Blade is the better way if you have a suspicious eye on what node does to your system - or if you need support in case something goes wrong. The availability of support is one of the the main selling points (if not &amp;#34;the&amp;#34;) for Liferay DXP - while the end result (your theme) might just work, it&amp;#39;s fine to decide either way. And someone developing a theme coming from the backend side, rather than the ever-evolving JS world, might be more familiar with that look&amp;amp;feel of the dev environment.&lt;br /&gt;&lt;br /&gt;If you&amp;#39;re happy with your choice, there&amp;#39;s no need to switch IMHO. The fact that the npm-style development is &amp;#34;not supported&amp;#34; doesn&amp;#39;t mean that it&amp;#39;s neglected. Through the wonders of updating modules on npm, issues might even be fixed over night - quicker than with the supported option. However, it might also inadvertently break one aspect over night with one update.</summary>
    <dc:creator>Olaf Kock</dc:creator>
    <dc:date>2017-11-30T09:42:19Z</dc:date>
  </entry>
  <entry>
    <title>RE: Two ways to create a theme, why?</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=99776955" />
    <author>
      <name>Alessandro Candini</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=99776955</id>
    <updated>2017-11-30T09:33:56Z</updated>
    <published>2017-11-30T09:33:56Z</published>
    <summary type="html">Thank you for your answer, Olaf.&lt;br /&gt;&lt;br /&gt;I&amp;#39;m developing Liferay 7 themes with yeoman and node from the very beginning and I did not get such instability.&lt;br /&gt;And I keep my node ecosystem constantly updated.&lt;br /&gt;&lt;br /&gt;It&amp;#39;s not very clear to me why should I use the blade way and expecially what is the workflow to get things done.&lt;br /&gt;&lt;br /&gt;Is maybe the blade way better if you use the IDE?</summary>
    <dc:creator>Alessandro Candini</dc:creator>
    <dc:date>2017-11-30T09:33:56Z</dc:date>
  </entry>
  <entry>
    <title>RE: Two ways to create a theme, why?</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=99778307" />
    <author>
      <name>Olaf Kock</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=99778307</id>
    <updated>2017-11-30T09:07:36Z</updated>
    <published>2017-11-30T09:07:36Z</published>
    <summary type="html">&lt;div class="quote-title"&gt;Alessandro Candini:&lt;/div&gt;&lt;blockquote&gt;What is the purpose of the second method to create a theme?&lt;br /&gt;Why we have two different ways?&lt;br /&gt;Is one way better?&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;I believe the reason lies in the disclaimer &lt;a href="https://dev.liferay.com/de/develop/tutorials/-/knowledge_base/7-0/themes-generator"&gt;opening the documentation&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;Note: The Liferay Theme Generator is unsupported. The tool is still in development and is not guaranteed to work on all platforms and environments. &lt;/blockquote&gt;&lt;br /&gt;While npm and related things are all the rage in the frontend world, they&amp;#39;re not the most stable: A build tomorrow might be different from a build today, as some module changed over night. This support situation is not &lt;a href="https://issues.liferay.com/browse/LRDOCS-4092"&gt;yet&lt;/a&gt; obvious in the documentation.&lt;br /&gt;&lt;br /&gt;Is one better? Yes. Which one? It depends. ;)&lt;br /&gt;&lt;br /&gt;I constantly get reminded of &lt;a href="http://geek-and-poke.com/geekandpoke/2014/11/8/frameworks"&gt;this gem from 2014&lt;/a&gt;.</summary>
    <dc:creator>Olaf Kock</dc:creator>
    <dc:date>2017-11-30T09:07:36Z</dc:date>
  </entry>
  <entry>
    <title>Two ways to create a theme, why?</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=99776351" />
    <author>
      <name>Alessandro Candini</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=99776351</id>
    <updated>2017-11-30T08:45:09Z</updated>
    <published>2017-11-30T08:45:09Z</published>
    <summary type="html">&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;I see that there are 2 ways to create a Liferay 7 theme: one with Yeoman and the other one with blade:&lt;br&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;yo liferay-theme&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;blade create -t theme mytheme&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;The first one creates a theme based on the node ecosystem with the following tree structure:&lt;br&gt;&lt;pre&gt;&lt;code&gt;mytheme-theme/
├── gulpfile.js
├── liferay-theme.json
├── package.json
├── package-lock.json
└── src
    ├── css
    │&amp;amp;nbsp;&amp;amp;nbsp; └── _custom.scss
    └── WEB-INF
        ├── liferay-look-and-feel.xml
        └── liferay-plugin-package.properties&lt;/code&gt;&lt;/pre&gt;&lt;br&gt;The second one creates it inside wars directory:&lt;br&gt;&lt;pre&gt;&lt;code&gt;wars/mytheme/
├── build.gradle
└── src
    └── main
        ├── resources
        │&amp;amp;nbsp;&amp;amp;nbsp; └── resources-importer
        │&amp;amp;nbsp;&amp;amp;nbsp;     └── sitemap.json
        └── webapp
            ├── css
            │&amp;amp;nbsp;&amp;amp;nbsp; └── _custom.scss
            └── WEB-INF
                ├── liferay-plugin-package.properties
                └── web.xml&lt;/code&gt;&lt;/pre&gt;&lt;br&gt;&lt;br&gt;What is the purpose of the second method to create a theme?&lt;br&gt;Why we have two different ways?&lt;br&gt;Is one way better?&lt;br&gt;Thank you.&lt;/body&gt;&lt;/html&gt;</summary>
    <dc:creator>Alessandro Candini</dc:creator>
    <dc:date>2017-11-30T08:45:09Z</dc:date>
  </entry>
</feed>
