diff --git a/DC_theme_generator.R b/DC_theme_generator.R
new file mode 100644
index 0000000000000000000000000000000000000000..0bcfa73f4d2cda26d3beb52b1b81376ecc35e7aa
--- /dev/null
+++ b/DC_theme_generator.R
@@ -0,0 +1,129 @@
+DC_theme_generator <- function(type,legend=T,ticks="out",x.axis.angle=0,hjust=0.5,vjust=0.5,fontsize.cex=1.5,fontfamily="serif"){
+  
+  ## Options:
+  # type: 'L', 'square'
+  # ticks: 'in', 'out'
+  # fontfamily: 'serif' , 'sans' , 'mono'
+  
+  ticks <- tolower(ticks)
+  fontfamily <- tolower(fontfamily)
+  
+  if( type == "square"){
+    if( legend ){
+      # Type: square , with legend"
+      themeToReturn <- ggplot2::theme(
+        panel.border = element_rect(linetype = 1, 
+                                    colour = "black",
+                                    fill=NA,
+                                    size=1),
+        panel.background=element_blank(),
+        panel.grid.major=element_line(color=NA),
+        axis.ticks = element_line(colour = "black"),
+        text = element_text(family = fontfamily),
+        axis.ticks.length = unit(ifelse(ticks=="in",-0.2,0.2),"cm"),
+        axis.title = element_text(size=rel(fontsize.cex)),
+        axis.text.y = element_text(size = rel(fontsize.cex),
+                                   hjust = 0.5,
+                                   angle = 0,
+                                   color="black",
+                                   margin=unit(c(0.3,0.3,0.3,0.3), "cm")),
+        axis.text.x = element_text(angle = x.axis.angle,
+                                   hjust = hjust,
+                                   vjust = vjust,
+                                   size = rel(fontsize.cex),
+                                   color="black",
+                                   margin=unit(c(0.3,0.3,0.3,0.3), "cm")),
+        legend.key= element_rect(fill=NA,
+                                 colour = NA)
+        )
+    }else{
+      # Type: square , without legend"
+      themeToReturn <- ggplot2::theme(
+        panel.border = element_rect(linetype = 1, 
+                                    colour = "black",
+                                    fill=NA,
+                                    size=1),
+        panel.background=element_blank(),
+        panel.grid.major=element_line(color=NA),
+        axis.ticks = element_line(colour = "black"),
+        text = element_text(family = fontfamily),
+        axis.ticks.length = unit(ifelse(ticks=="in",-0.2,0.2),"cm"),
+        axis.title = element_text(size=rel(fontsize.cex)),
+        axis.text.y = element_text(size = rel(fontsize.cex),
+                                   hjust = 0.5,
+                                   angle = 0,
+                                   color="black",
+                                   margin=unit(c(0.3,0.3,0.3,0.3), "cm")),
+        axis.text.x = element_text(angle = x.axis.angle,
+                                   hjust = hjust,
+                                   vjust = vjust,
+                                   size = rel(fontsize.cex),
+                                   color="black",
+                                   margin=unit(c(0.3,0.3,0.3,0.3), "cm")),
+        legend.key= element_rect(fill=NA,
+                                 colour = NA),
+        legend.position="none"
+      )
+    }
+  }
+  
+  if( type == 'L' ){
+    if( legend ){
+      # Type: L , with legend"
+      themeToReturn <- ggplot2::theme(
+        axis.line = element_line(colour = "black",
+                                 size=0.5),
+        panel.border = element_blank(),
+        panel.background = element_blank(),
+        panel.grid.major = element_blank(),
+        panel.grid.minor = element_blank(),
+        axis.ticks = element_line(colour = "black"),
+        text = element_text(family = fontfamily),
+        axis.ticks.length = unit(ifelse(ticks=="in",-0.2,0.2), "cm"),
+        axis.title = element_text(size=rel(fontsize.cex)),
+        axis.text.y = element_text(size = rel(fontsize.cex),
+                                   hjust = 0.5,
+                                   angle = 0,
+                                   color="black",
+                                   margin=unit(c(0.3,0.3,0.3,0.3), "cm")),
+        axis.text.x = element_text(angle = x.axis.angle,
+                                   hjust = hjust,
+                                   vjust = vjust,
+                                   size = rel(fontsize.cex),
+                                   color="black",
+                                   margin=unit(c(0.3,0.3,0.3,0.3), "cm")),
+        legend.key = element_rect(fill=NA,
+                                  colour = NA)
+      )
+    } else {
+      # Type: L , without legend
+      themeToReturn <- ggplot2::theme(
+        axis.line = element_line(colour = "black",
+                                 size=0.5),
+        panel.border = element_blank(),
+        panel.background = element_blank(),
+        panel.grid.major = element_blank(),
+        panel.grid.minor = element_blank(),
+        axis.ticks = element_line(colour = "black"),
+        text = element_text(family = fontfamily),
+        axis.ticks.length = unit(ifelse(ticks=="in",-0.2,0.2), "cm"),
+        axis.title = element_text(size=rel(fontsize.cex)),
+        axis.text.y = element_text(size = rel(fontsize.cex),
+                                   hjust=0.5,
+                                   angle=0,
+                                   color="black",
+                                   margin=unit(c(0.3,0.3,0.3,0.3), "cm")),
+        axis.text.x = element_text(angle = x.axis.angle,
+                                   hjust = hjust,
+                                   vjust = vjust,
+                                   size = rel(fontsize.cex),
+                                   color="black",
+                                   margin=unit(c(0.3,0.3,0.3,0.3), "cm")),
+        legend.key = element_rect(fill=NA,
+                                  colour = NA),
+        legend.position="none"
+      )
+    }  
+  }
+  return(themeToReturn)
+}
\ No newline at end of file