diff --git a/app/assets/stylesheets/common.scss b/app/assets/stylesheets/common.scss
index 51b3f565c7f..59bba6a380e 100644
--- a/app/assets/stylesheets/common.scss
+++ b/app/assets/stylesheets/common.scss
@@ -8,6 +8,4 @@
 @import "common/components/*";
 @import "common/admin/*";
 @import "common/input_tip";
-@import "common/base/*";
-/* This file doesn't actually exist, it is injected by DiscourseSassImporter. */
-@import "plugins";
+@import "common/base/*";
\ No newline at end of file
diff --git a/app/assets/stylesheets/common/foundation/variables.scss b/app/assets/stylesheets/common/foundation/variables.scss
index 0d963241d2f..b643c05d488 100644
--- a/app/assets/stylesheets/common/foundation/variables.scss
+++ b/app/assets/stylesheets/common/foundation/variables.scss
@@ -183,3 +183,7 @@ $quote-background: lighten($black, 76%);
 
 $topicMenuColor: darken($white, 80%);
 $bookmarkColor: $blue;
+
+
+/* This file doesn't actually exist, it is injected by DiscourseSassImporter. */
+@import "plugins_variables";
diff --git a/app/assets/stylesheets/desktop.scss b/app/assets/stylesheets/desktop.scss
index 07c3c6c0b8d..8fe56240a9a 100644
--- a/app/assets/stylesheets/desktop.scss
+++ b/app/assets/stylesheets/desktop.scss
@@ -1,2 +1,7 @@
 @import "common";
 @import "desktop/*";
+
+/* These files doesn't actually exist, they are injected by DiscourseSassImporter. */
+
+@import "plugins";
+@import "plugins_desktop";
diff --git a/app/assets/stylesheets/mobile.scss b/app/assets/stylesheets/mobile.scss
index 1c9951094fe..063f58aabba 100644
--- a/app/assets/stylesheets/mobile.scss
+++ b/app/assets/stylesheets/mobile.scss
@@ -1,5 +1,8 @@
 @import "common";
 @import "mobile/*";
 
-/* This file doesn't actually exist, it is injected by DiscourseSassImporter. */
+
+/* These files doesn't actually exist, they are injected by DiscourseSassImporter. */
+
+@import "plugins";
 @import "plugins_mobile";
diff --git a/lib/discourse_plugin_registry.rb b/lib/discourse_plugin_registry.rb
index 02e42083a3f..1a32e478e00 100644
--- a/lib/discourse_plugin_registry.rb
+++ b/lib/discourse_plugin_registry.rb
@@ -9,6 +9,8 @@ class DiscoursePluginRegistry
     attr_accessor :admin_javascripts
     attr_accessor :stylesheets
     attr_accessor :mobile_stylesheets
+    attr_accessor :desktop_stylesheets
+    attr_accessor :sass_variables
     attr_accessor :handlebars
 
     # Default accessor values
@@ -31,6 +33,15 @@ class DiscoursePluginRegistry
     def mobile_stylesheets
       @mobile_stylesheets ||= Set.new
     end
+
+    def desktop_stylesheets
+      @desktop_stylesheets ||= Set.new
+    end
+
+    def sass_variables
+      @sass_variables ||= Set.new
+    end
+
     def handlebars
       @handlebars ||= Set.new
     end
@@ -66,6 +77,14 @@ class DiscoursePluginRegistry
     self.class.mobile_stylesheets
   end
 
+  def desktop_stylesheets
+    self.class.desktop_stylesheets
+  end
+
+  def sass_variables
+    self.class.sass_variables
+  end
+
   def handlebars
     self.class.handlebars
   end
@@ -75,6 +94,8 @@ class DiscoursePluginRegistry
     self.server_side_javascripts = nil
     self.stylesheets = nil
     self.mobile_stylesheets = nil
+    self.desktop_stylesheets = nil
+    self.sass_variables = nil
     self.handlebars = nil
   end
 
diff --git a/lib/discourse_sass_importer.rb b/lib/discourse_sass_importer.rb
index 5a7e6dbcd63..9e8c6f81de4 100644
--- a/lib/discourse_sass_importer.rb
+++ b/lib/discourse_sass_importer.rb
@@ -26,6 +26,15 @@ class DiscourseSassImporter < Sass::Importers::Filesystem
     }.merge!(super)
   end
 
+  def special_imports
+    {
+      "plugins" => DiscoursePluginRegistry.stylesheets,
+      "plugins_mobile" => DiscoursePluginRegistry.mobile_stylesheets,
+      "plugins_desktop" => DiscoursePluginRegistry.desktop_stylesheets,
+      "plugins_variables" => DiscoursePluginRegistry.sass_variables
+    }
+  end
+
   def find_relative(name, base, options)
     if name =~ GLOB
       glob_imports(name, Pathname.new(base), options)
@@ -35,12 +44,8 @@ class DiscourseSassImporter < Sass::Importers::Filesystem
   end
 
   def find(name, options)
-    if name == "plugins" || name == "plugins_mobile"
-      if name == "plugins"
-        stylesheets = DiscoursePluginRegistry.stylesheets
-      elsif name == "plugins_mobile"
-        stylesheets = DiscoursePluginRegistry.mobile_stylesheets
-      end
+    if special_imports.has_key? name
+      stylesheets = special_imports[name]
       contents = ""
       stylesheets.each do |css_file|
         if css_file =~ /\.scss$/
diff --git a/lib/plugin/instance.rb b/lib/plugin/instance.rb
index 585a86e0882..297726f779d 100644
--- a/lib/plugin/instance.rb
+++ b/lib/plugin/instance.rb
@@ -222,12 +222,14 @@ class Plugin::Instance
           DiscoursePluginRegistry.javascripts << asset
         end
       elsif asset =~ /\.css$|\.scss$/
-
-        unless opts == :mobile
-          DiscoursePluginRegistry.stylesheets << asset
-        end
-        unless opts == :desktop
+        if opts == :mobile
           DiscoursePluginRegistry.mobile_stylesheets << asset
+        elsif opts == :desktop
+          DiscoursePluginRegistry.desktop_stylesheets << asset
+        elsif opts == :variables
+          DiscoursePluginRegistry.sass_variables << asset
+        else
+          DiscoursePluginRegistry.stylesheets << asset
         end
 
       elsif asset =~ /\.js\.handlebars$/
diff --git a/spec/components/plugin/instance_spec.rb b/spec/components/plugin/instance_spec.rb
index f65a1a76a0f..c61ff9cb59e 100644
--- a/spec/components/plugin/instance_spec.rb
+++ b/spec/components/plugin/instance_spec.rb
@@ -9,6 +9,8 @@ describe Plugin::Instance do
     DiscoursePluginRegistry.server_side_javascripts.clear
     DiscoursePluginRegistry.stylesheets.clear
     DiscoursePluginRegistry.mobile_stylesheets.clear
+    DiscoursePluginRegistry.desktop_stylesheets.clear
+    DiscoursePluginRegistry.sass_variables.clear
   end
 
   context "find_all" do
@@ -35,7 +37,7 @@ describe Plugin::Instance do
 
       plugin.send :register_assets!
 
-      DiscoursePluginRegistry.mobile_stylesheets.count.should == 2
+      DiscoursePluginRegistry.mobile_stylesheets.count.should == 0
       DiscoursePluginRegistry.stylesheets.count.should == 2
     end
 
@@ -45,7 +47,8 @@ describe Plugin::Instance do
       plugin.send :register_assets!
 
       DiscoursePluginRegistry.mobile_stylesheets.count.should == 0
-      DiscoursePluginRegistry.stylesheets.count.should == 1
+      DiscoursePluginRegistry.desktop_stylesheets.count.should == 1
+      DiscoursePluginRegistry.stylesheets.count.should == 0
     end
 
     it "registers mobile css properly" do
@@ -57,6 +60,26 @@ describe Plugin::Instance do
       DiscoursePluginRegistry.stylesheets.count.should == 0
     end
 
+    it "registers desktop css properly" do
+      plugin = Plugin::Instance.new nil, "/tmp/test.rb"
+      plugin.register_asset("test.css", :desktop)
+      plugin.send :register_assets!
+
+      DiscoursePluginRegistry.desktop_stylesheets.count.should == 1
+      DiscoursePluginRegistry.stylesheets.count.should == 0
+    end
+
+
+    it "registers sass variable properly" do
+      plugin = Plugin::Instance.new nil, "/tmp/test.rb"
+      plugin.register_asset("test.css", :variables)
+      plugin.send :register_assets!
+
+      DiscoursePluginRegistry.sass_variables.count.should == 1
+      DiscoursePluginRegistry.stylesheets.count.should == 0
+    end
+
+
     it "registers admin javascript properly" do
       plugin = Plugin::Instance.new nil, "/tmp/test.rb"
       plugin.register_asset("my_admin.js", :admin)
@@ -116,6 +139,9 @@ describe Plugin::Instance do
       plugin.register_asset("desktop.css", :desktop)
       plugin.register_asset("desktop2.css", :desktop)
 
+      plugin.register_asset("variables1.scss", :variables)
+      plugin.register_asset("variables2.scss", :variables)
+
       plugin.register_asset("code.js")
 
       plugin.register_asset("server_side.js", :server_side)
@@ -128,8 +154,10 @@ describe Plugin::Instance do
       DiscoursePluginRegistry.javascripts.count.should == 3
       DiscoursePluginRegistry.admin_javascripts.count.should == 2
       DiscoursePluginRegistry.server_side_javascripts.count.should == 1
-      DiscoursePluginRegistry.stylesheets.count.should == 4
-      DiscoursePluginRegistry.mobile_stylesheets.count.should == 3
+      DiscoursePluginRegistry.desktop_stylesheets.count.should == 2
+      DiscoursePluginRegistry.sass_variables.count.should == 2
+      DiscoursePluginRegistry.stylesheets.count.should == 2
+      DiscoursePluginRegistry.mobile_stylesheets.count.should == 1
     end
   end