diff --git a/content/features/index.en.md b/content/features/index.en.md index 97ba127..01c7b2d 100644 --- a/content/features/index.en.md +++ b/content/features/index.en.md @@ -2,11 +2,124 @@ title: "Features" date: 2018-10-13T21:59:47+02:00 draft: false -type: "page" +type: "features" menu: page: title: "Features" weight: 20 --- -# Features \ No newline at end of file +
+
+

Features

+

Vikunja is a TODO-List app. Think of it like the notebook you have with all your things to keep track of, but better.

+ +
+
+ Lists +
+
+

Lists

+ +

First things first: Vikunja can create lists. And yes, you can add tasks to a list. But it can do so much more + (or at least, it will be able to do a lot more at some point).

+ +

Namespaces

+ +

A... what? A namespace is something like a group of lists. Every list is part of a particular namespace which you can then share + or simply use as a method to keep track of multiple lists more easily.

+ +

Tasks

+ +

Tasks are not only simple tasks. You can let Vikunja remind you of tasks when they're due. Never miss an important deadline again!

+
+
+ +
+
+

Sharing

+ +

+ Ever wished you could just share that grocery list with your roomate instead of having to send dozens of texts on your way to the supermarket? + With Vikunja, you can. Simply share a list or a namespace with all its lists to another user. + Don't want your roommate to add new things to the grocery list and only do the shopping? + You can also share a list with _read-only_ access!

+ +

+ Planning a bigger thing? You can use teams to share a list or namespace with multiple people at a time! +

+
+
+ Sharing with a user +
+
+ +### CalDAV + +Ever discovered that web app with all its great features, but somewhat... not good to use? Not to say [our app](https://vikunja.io/download) is not easy to +use - but you don't have to use it! Vikunja comes with a calDAV-integration which lets you use the tools you already use and love. + +
+
+ +
+
+
+

+ Can't wait to see it in action? +

+ Try it +
+
+
+ +
+
+
+
+ +

Self-Hosted

+ +

Use Vikunja on your own server or hosted*. Your data will always be yours we won't sell your grocery list to Amazon. Don't trust us? +Check for yourself.

+ +

Also, did I mention "the cloud"? Vikunja syncs across all your devices, no matter if you created a task on the mobile app or on your laptop, enabling +you to continue where you left off. +
+\* We don't have any stable hosted instances of Vikunja available, yet. + +

+ +
+
+

Open-Source

+ +

Vikunja is completly open source and released under the LGPLv3.

+ +

You can contribute in multiple ways, even if you're not a developer! It already helps a lot when you use Vikunja and report +features you'd like or bugs you find.

+ +

And if you are a developer and know your way around Go or +Vue.js any help is appreceated.

+ +
+
+ +## Roadmap + +But of course, there's more to come! Take a look at this list of things we've planned to add: + +* Labels for todo lists and tasks +* Prioritize tasks +* Assign users to tasks +* Subtasks +* Repeating tasks +* Attachments on tasks +* Get all tasks for you per interval (day/month/period) +* More sharing features + * Share via a world-readable link with or without password, like Nextcloud + + +
+
\ No newline at end of file diff --git a/content/features/lists.png b/content/features/lists.png new file mode 100644 index 0000000..374dd9e Binary files /dev/null and b/content/features/lists.png differ diff --git a/content/features/sharing-user.png b/content/features/sharing-user.png new file mode 100644 index 0000000..3efc977 Binary files /dev/null and b/content/features/sharing-user.png differ diff --git a/content/features/task.png b/content/features/task.png new file mode 100644 index 0000000..b26f800 Binary files /dev/null and b/content/features/task.png differ diff --git a/themes/vikunja/layouts/features/single.html b/themes/vikunja/layouts/features/single.html new file mode 100644 index 0000000..e7a9e35 --- /dev/null +++ b/themes/vikunja/layouts/features/single.html @@ -0,0 +1,8 @@ +{{ partial "header.html" . }} +{{ partial "navbar.html" . }} + +
+ {{ .Content }} +
+ +{{ partial "footer.html" . }} diff --git a/themes/vikunja/src/main.scss b/themes/vikunja/src/main.scss index 96f8085..076e8b2 100644 --- a/themes/vikunja/src/main.scss +++ b/themes/vikunja/src/main.scss @@ -171,4 +171,89 @@ h1, h2, h3, h4, h5, h6 { right: 0; z-index: 1; opacity: 1; +} + +/// Test if `$value` is a valid direction +/// @param {*} $value - Value to test +/// @return {Bool} +@function is-direction($value) { + $is-keyword: index((to top, to top right, to right top, to right, to bottom right, to right bottom, to bottom, to bottom left, to left bottom, to left, to left top, to top left), $value); + $is-angle: type-of($value) == 'number' and index('deg' 'grad' 'turn' 'rad', unit($value)); + + @return $is-keyword or $is-angle; +} + +/// Convert a direction to legacy syntax +/// @param {Keyword | Angle} $value - Value to convert +/// @require {function} is-direction +/// @require {function} convert-angle +/// @throw Cannot convert `#{$value}` to legacy syntax because it doesn't seem to be a direction.; +@function legacy-direction($value) { + @if is-direction($value) == false { + @error "Cannot convert `#{$value}` to legacy syntax because it doesn't seem to be a direction."; + } + + $conversion-map: ( + to top : bottom, + to top right : bottom left, + to right top : left bottom, + to right : left, + to bottom right : top left, + to right bottom : left top, + to bottom : top, + to bottom left : top right, + to left bottom : right top, + to left : right, + to left top : right bottom, + to top left : bottom right + ); + + @if map-has-key($conversion-map, $value) { + @return map-get($conversion-map, $value); + } + + @return 90deg - $value; +} + +/// Mixin printing a linear-gradient +/// as well as a plain color fallback +/// and the `-webkit-` prefixed declaration +/// @access public +/// @param {Keyword | Angle} $direction - Linear gradient direction +/// @param {Arglist} $color-stops - List of color-stops composing the gradient +@mixin linear-gradient($direction, $color-stops...) { + + @if is-direction($direction) == false { + $color-stops: $direction, $color-stops; + $direction: 180deg; + } + + background: nth(nth($color-stops, 1), 1); + background: -webkit-linear-gradient(legacy-direction($direction), $color-stops); + background: linear-gradient($direction, $color-stops); +} + +// Features page +.features{ + @include linear-gradient(180deg, $primary, lighten($green, 15%)); + + h1,h2,h3,&{ + color: #fff; + } + + a{ + color: lighten($dark, 10%); + } + + .column{ + + } + + .column.theimage { + text-align: center; + + img{ + box-shadow: .4em .4em 1em lighten($dark, 15%); + } + } } \ No newline at end of file