sabato 30 novembre 2013

XMAS TIME - Get a Lumia 925 for free


Do you want a Lumia 925 for Christmas?
Thanks to DVLUP you can get it easy :)

Check the new xmas challenge!
You just need to create 3 new applications for Windows Phone 8 and 3 new apps for Windows 8.
When you reach 4 apps (2 wp8 + 2 win8) you get 800XP to spend in rewards.

You don't have the DVLUP account?  Just register from this link.

The submission ends the 24th december.
And if you register to dvlup from my link, I can get 500xp too.
Merry Xmas :D

sabato 16 novembre 2013

[ITA] Dal 920 al Lumia 1020


Che dire... Il Lumia 1020 subentra di prepotenza con il suo colore giallo.

La prima impressione è sicuramente molto positiva, non solo per l'impatto visivo, ma anche per la maneggevolezza. Quei 30 grammi in meno rispetto al 920 fanno la differenza. Sfortunatamente per chi è abituato alla ricarica wireless, dovrà comprare una cover apposita o rinunciarci per sempre.

Lo schermo è passato da LCD ad AMOLED: la qualità si nota considerevolmente, specialmente nella profondità dei neri. Il vetro passa da Gorila Glass 2 a Gorilla Glass 3, e come succedeva già prima, alla minima rigatura, puoi passarci la mano sopra per farlo tornare come nuovo.
L'amoled riesce a valorizzare ancora di più la funzionalità Glance (l'orologio che comprare a telefono bloccato), che adesso è nettamente più definita e visibile anche a diverse angolazioni.

Sul retro del dispositivo alloggia l'imponente fotocamera che occupa una buona parte della superficie, ma che enfatizza l'entità dei 41 megapixel. Sfortunatamente la fotocamera sporge e fa si che il telefono non tocchi interamente sul piano di appoggio. Dall'altro lato però, è molto più semplice visualizzare l'ora senza avvicinarsi al telefono.

QUARANTUNO megapixel!! Ogni foto viene scattata sia con risoluzione normale da 5mp sia a 41mp. La prima viene utilizzata per tutte le attività del telefono e per la condivisione nei social network, l'altra può essere visualizzata dal pc o con applicazioni apposite.
La luminosità e la precisione del sensore sono di alto livello ed in abbinamento con l'applicazione Nokia Camera, sembra di avere tra le mani una reflex. Il tutto viene amplificato dal Camera Grip, un accessorio che trasforma il telefono in una compatta con batteria ausiliaria e la possibilità di utilizzare il device con un cavalletto. Il Camera Grip offre molti vantaggi, ma ha anche un difetto: anche se molto resistente, per toglierlo bisogna forzare parecchio e quindi si ha sempre l'impressione di romperlo.
Il 920 dava il meglio di sé con le foto in notturna, ma sono rimasto meravigliato dalla qualità che sono riusciti a raggiungere con il 1020. Il flash è tre volte più grande e potente del precedente e viene affiancato dalla lampada della messa a fuoco.
Posso quindi affermare che questo device regna sovrano nel reparto fotografico, specialmente se paragonato ai vari concorrenti.

Il sistema operativo è sempre Windows Phone 8, ma stavolta accompagnato da un hardware con 2gb di memoria. Veloce, scattante ed esente dai problemi di lag che hanno i device android e ultimamente gli iPhone con iOS7.

L'autonomia è paragonabile a quella del 920 e monta sempre una batteria da 2000mAh. Sinceramente la mia impressione è che duri di più rispetto a prima, ma non voglio fare un paragone per il fatto che il 920 ha già più di un anno di età.

Posso concludere affermando che il passaggio dal 920 al 1020 è nettamente positivo, anche se avrei preferito mantenere la ricarica wireless e magari il colore azzurro :)

A questo link trovate alcune foto di prova.

martedì 12 novembre 2013

Syncfusion TileView - Windows Phone


I found a nice Windows Phone control in the Syncfusion suite: the TileView.
That control has the ability to show a collection of items but one can be maximized to display more informations.





The code is very simple, so let's start to explain the wp8 version!

First of all you need to reference two dll in your project:
  1.  Syncfusion.SfTileView.WP8.dll
  2.  Syncfusion.SfShared.WP8.dll
In the xaml, add the namespace:
xmlns:syncTileView="clr-namespace:Syncfusion.WP.Controls.Layout;assembly=Syncfusion.SfTileView.WP8"

and your TileView object:
<syncTileView:SfTileView ItemsSource="{Binding ComingSoonFilms}" MinimizedItemsOrientation="Right">
   ....
   ....
   ....
</syncTileView:SfTileView>
"MinimizedItemsOrientation property change the orientation of items while the maximized item is displayed"

Now you need the ItemTemplate to show your items and a MaximizedItemTemplate to show the detail.
You can create a simple ItemTemplate with an image:
<syncTileView:SfTileView.ItemTemplate>
 <DataTemplate>
  <Image Source="{Binding Picture}" Width="100" Height="160" Stretch="Fill"/>
 </DataTemplate>
</syncTileView:SfTileView.ItemTemplate>

and a MaximizedItemTemplate like this:
<syncTileView:SfTileView.MaximizedItemTemplate>
 <DataTemplate>
  <Grid>
   <Grid.RowDefinitions>
    <RowDefinition Height="auto"/>
    <RowDefinition/>
   </Grid.RowDefinitions>
   <TextBlock Text="{Binding Title}" Style="{StaticResource PhoneTextLargeStyle}"/>
   <Image Grid.Row="1" Source="{Binding Picture}" Stretch="UniformToFill"/>
  </Grid>
 </DataTemplate>
</syncTileView:SfTileView.MaximizedItemTemplate>

martedì 1 ottobre 2013

DVLUP - Support ALL Windows Phone 8 screen resolutions


The DVLUP is web-based community and rewards program for Windows Phone app developers.
The developers can complete challenges to get points and then get prizes.

Very nice! But...
what is the challenge requirement "Support ALL Windows Phone 8 screen resolutions"?

It creates a lot of confusion to devs:
  • It needs a wp8 app?
  • I can submit a wp7 app?
  • My app needs both xap versions?
  • I need multiple splashscreen?
  • The app needs icons and tiles with high resolution?

The answer from DVLUP team:

"The challenge requirement to support all Windows Phone 8 screen resolutions is to cover the different screen sizes on the different Lumia phones (HD720P (720x1280), WVGA (480x800) and WXGA (768x1280)).
 A Windows Phone 7 app may run in these resolutions but be scaled and not use the entire screen. The challenge requirement as that the app use the full screen without scaling or cropping."
 
 

venerdì 13 settembre 2013

Force binding update for a TextBox


The TextBox control updates the Text binding source only when it looses focus.

When you are writing in a TextBox and you press a button in the ApplicationBar, the focus not changes and your MVVM property doesn't update.

The workaround is to force the binding update like this:
 
var focusedElement = FocusManager.GetFocusedElement();
var focusedTextBox = focusedElement as TextBox;

if (focusedTextBox != null)
{
    var binding = focusedTextBox.GetBindingExpression(TextBox.TextProperty);
    if (binding != null)
        binding.UpdateSource();
}


sabato 7 settembre 2013

Install Nokia Pro Camera with Amber


If you can't download Nokia Pro Camera like me...


Here an easy workaround:
  1. Change your phone region and language to United States
  2. Connect to a WiFi network
  3. Under Settings - WiFi, click on the WiFi network you are connected to
  4. Switch 'Proxy' to on. Now type "117.135.139.179" into "Server/URL". In "Port", type in "8888"
  5. Go to the Store and click on 'Nokia Collection'
  6. Download Nokia Pro Cam
  7. When the download started, turn Proxy off
  8. Set your phone region back to normal, and Restart.

martedì 3 settembre 2013

The Next Chapter: Microsoft and Nokia


"Important news today: an agreement for Microsoft to purchase Nokia’s Devices & Services business, to deliver more choices, faster innovation, and even more exciting devices and services to our customers."

Read the complete post..

giovedì 22 agosto 2013

Windows Store Apps Succinctly - Free eBook

Some days ago I started to develop an application for Windows Store.
I love to develop in C#, and after some pages in MSDN documentation, I searched for an offline free e-book to read with my tablet.
I found a great resource from Syncfusion:

Windows Store Apps Succinctly

This book is written by John Garland and you can download 185 pages in PDF or Kindle format.

Before starting, please remember: if you are a beginner in development, this ebook is not for you.

Why is it a good choice? Because it's simple and fast to read. It starts from core concepts until you get to the deployment. Then at the end of this book, you are ready to fully develop your first application.

Main Chapters
  1. Core Concepts: the introduction to Windows Store apps, WinRT and the Windows Runtime with a simple "Hello World" sample.
  2. XAML, Controls, and Pages: all you need to know about XAML, from Namespace declarations, to Animations and Data Binding. The chapter shows all essential controls for the user interface and explains how to work with Pages and Frames.
  3. Application Life Cycle and Storage: one of the most important chapters. The Windows Store apps life cycle is not the same as the desktop apps, then you need to understand all steps for the the best user experience. This chapter continues with Data Storage. It explains how to work with Application Data (local, roaming, temporary), User Data (file and folder picker) and Data Storage (files/folder and some useful links to LiveConnect and SQLite). 
  4. Contracts and Extensions: the Windows 8 Charms: search, share, print, app settings, etc.. The chapter ends with handling file types and protocols.
  5. Tiles, Toast, and Notifications: yes..the big feature of Windows Phone, now in Windows 8. If you want to release a great app, you really need a good Live Tile. This chapter covers all types of Tiles and how to schedule the updates. Then it talks about the Toast Notifications and ends with a sample of Push Notification.
  6. Hardware and Sensors: an overview of all sensors (like compass, gyroscope, accelerometer and gps) and how to interact with Camera. The user love those features, then use them in your app.
  7. Deployment: your application is done, let's publish it on Windows Store! Understand the Store prices and accounts; learn how to use the Windows Application Certification Kit; add the trial mode and the In-app purchase; configure the PubCenter and the Ads.

Pro
  • Free! :)
  • Easy and fast to read
  • XAML + C#
  • All development cycle
  • A lot of samples and tips
  • Kindle format
  • Not for development beginners

Cons
  • No NFC samples
  • No gestures samples

Now enjoy your reading... thanks Syncfusion.

FYI another good free resource is Metro Studio: a customizable collection of icon templates.

mercoledì 21 agosto 2013

Restore NuGet Packages


To restore NuGet packages you need only few steps:

1- In Visual Studio Options --> Package Manager -> Check "Allow NuGet to download missing packages during build".


2- In the Solution --> Enable NuGet Package Restore.


3- Build your project.

That's all!

giovedì 15 agosto 2013

String format in Xaml

When you need to concatenate some strings in a TextBlock you can use the tag like Run.

Silverlight 4 has introduced an useful feature to make this more easy: StringFormat.
Now you can put more informations in a single element.

The code is very simple:
<TextBlock Text="{Binding Username, StringFormat='Hello \{0\}'}" />
<TextBlock Text="{Binding Temperature, StringFormat=\{0\}°}" />

and it works also with numbers and dates:
<TextBlock Text="{Binding Value, StringFormat=\{0:n2\}}" />
<TextBlock Text="{Binding Value, StringFormat=\{0:c2\}}" />
<TextBlock Text="{Binding Date, StringFormat=f}" />

You can check more details in the Kunal's blog

sabato 29 giugno 2013

Windows Phone 8 - Map and Clusters

This code example demonstrates how to dynamically group pushpins in the map control.
There is a lot of code for Windows Phone 7, then I merged all what I need to create a project for WP8.


First of all you need some namespace declaration: for map control and for pushpins from WP Toolkit.

xmlns:map="clr-namespace:Microsoft.Phone.Maps.Controls;assembly=Microsoft.Phone.Maps"
xmlns:maptk="clr-namespace:Microsoft.Phone.Maps.Toolkit;assembly=Microsoft.Phone.Controls.Toolkit"

You need also two templates: one for a standard pushpin and the other for the cluster.
<phone:PhoneApplicationPage.Resources>
 <DataTemplate x:Key="PushpinTemplate">
  <maptk:Pushpin GeoCoordinate="{Binding GeoCoordinate}" Content="{Binding}" />
 </DataTemplate>
 <DataTemplate x:Key="ClusterTemplate">
  <maptk:Pushpin GeoCoordinate="{Binding GeoCoordinate}" Content="{Binding Count}"/>
 </DataTemplate>
</phone:PhoneApplicationPage.Resources>

ClustersGenerator is the core of the project. It's a static class that accepts in input
  • Map control
  • Pushpins collection
  • Cluster DataTemplate.
public ClustersGenerator(Map map, List<Pushpin> pushpins, DataTemplate clusterTemplate)
{
 _map = map;
 _pushpins = pushpins;
 this.ClusterTemplate = clusterTemplate;

 // maps event
 _map.ResolveCompleted += (s, e) => GeneratePushpins();

  // first generate
 GeneratePushpins();
}

Every map event launches the pushpins elaboration, but first to explain GeneratePushpins method, let's introduce another class: PushpinGroup.
PushpinGroup represents a standard pushpin or a cluster, and exposes a GetElement method to return them. If the group is a cluster, it needs to get only the first pushpin GeoCoordinate and the content is a group of all pushpins.
public class PushpinsGroup
{
 private List<Pushpin> _pushpins = new List<Pushpin>();
 public Point MapLocation { get; set; }

 public PushpinsGroup(Pushpin pushpin, Point location)
 {
  _pushpins.Add(pushpin);
  MapLocation = location;
 }

 public FrameworkElement GetElement(DataTemplate clusterTemplate)
 {
  if (_pushpins.Count == 1)
   return _pushpins[0];

  // more pushpins
  return new Pushpin()
  {
   // just need the first coordinate
   GeoCoordinate = _pushpins.First().GeoCoordinate,
   Content = _pushpins.Select(p => p.DataContext).ToList(),
   ContentTemplate = clusterTemplate,
  };
 }

 public void IncludeGroup(PushpinsGroup group)
 {
  foreach (var pin in group._pushpins)
   _pushpins.Add(pin);
 }
}

The GeneratePushipins function creates clusters based on map ViewPort and a constant named MAXDISTANCE. An extension method convert pushpin GeoCoordinate to a ViewPort Point. That is used to get the distance from other points. If this distance is less then the MAXDISTANCE, the pushpin become a part of cluster.
private void GeneratePushpins()
{
 List<PushpinsGroup> pushpinsToAdd = new List<PushpinsGroup>();
 foreach (var pushpin in _pushpins)
 {
  bool addGroup = true;
  var newGroup = new PushpinsGroup(pushpin, _map.ConvertGeoCoordinateToViewportPoint(pushpin.GeoCoordinate));

  foreach (var pushpinToAdd in pushpinsToAdd)
  {
   double distance = pushpinToAdd.MapLocation.GetDistanceTo(newGroup.MapLocation);

   if (distance < MAXDISTANCE)
   {
    pushpinToAdd.IncludeGroup(newGroup);
    addGroup = false;
    break;
   }
  }

  if (addGroup)
   pushpinsToAdd.Add(newGroup);
 }

 _map.Dispatcher.BeginInvoke(() =>
 {
  _map.Layers.Clear();
  MapLayer layer = new MapLayer();
  foreach (var visibleGroup in pushpinsToAdd.Where(p => _map.IsVisiblePoint(p.MapLocation)))
  {
   var cluster = visibleGroup.GetElement(this.ClusterTemplate) as Pushpin;
   if (cluster != null)
   {
    layer.Add(new MapOverlay() { GeoCoordinate = cluster.GeoCoordinate, Content = cluster.Content, ContentTemplate = cluster.ContentTemplate});
   }
  }
  if (layer.Count > 0)
   _map.Layers.Add(layer);
 });
}

The extension method GetDistanceTo is the algorithm to calculate the distance between two points:
public static double GetDistanceTo(this Point p1, Point p2)
{
 return Math.Sqrt((p1.X - p2.X) * (p1.X - p2.X) + (p1.Y - p2.Y) * (p1.Y - p2.Y));
}

Instead IsPointVisible returns true if the point is visible in the map, otherwise false:
public static bool IsVisiblePoint(this Map map, Point point)
{
 return point.X > 0 && point.X < map.ActualWidth && point.Y > 0 && point.Y < map.ActualHeight;
}

Now in your MainPage.xaml, you only need to pass all pushpins to the ClusterGenerator and it will do all work for you.

var clusterer = new ClustersGenerator(map, pushpins, this.Resources["ClusterTemplate"] as DataTemplate);

You can download all code here.

With this article I won TechNet Guru Contribution June 2013 - Windows Phone.

venerdì 28 giugno 2013

Windows Phone - Caliburn Micro and App.xaml error

When I add Caliburn Micro to a new project, I have always some error in App.xaml.
With Caliburn 1.5.1 I found a new problem: "Object Reference not set to an instance of an object".

This error don't prevent the project build, but it seems related to the xaml.
That's why the RootFrame into designer is null.

The fix is easy! Just open your Bootstrapper and change
container.RegisterPhoneServices(RootFrame);
with..
if (!Execute.InDesignMode)
 container.RegisterPhoneServices(RootFrame);

Windows Phone - Caliburn Micro and Telerik

When you use Caliburn Micro you always have a file Bootstrapper like this:

public class Bootstrapper : PhoneBootstrapper
{
 PhoneContainer container;

 protected override void Configure()
 {
  container = new PhoneContainer();
  
  container.RegisterPhoneServices(RootFrame);

  container.PerRequest<MainPageViewModel>();
  
  AddCustomConventions();
 }

 static void AddCustomConventions()
 {
 }

 protected override object GetInstance(Type service, string key)
 {
  return container.GetInstance(service, key);
 }

 protected override IEnumerable<object> GetAllInstances(Type service)
 {
  return container.GetAllInstances(service);
 }

 protected override void BuildUp(object instance)
 {
  container.BuildUp(instance);
 }
}

I love to use Windows Phone controls from Telerik and I always add RadPhoneApplicationFrame in my applications, but how to add it in the Bootstrapper?

You need only some lines of code.


private PhoneApplicationFrame rootFrame;
private new PhoneApplicationFrame RootFrame
{
 get
 {
  if (this.rootFrame == null)
   this.rootFrame = new RadPhoneApplicationFrame();

  return this.rootFrame;
 }
 set
 {
  this.rootFrame = value;
 }
}

protected override PhoneApplicationFrame CreatePhoneApplicationFrame()
{
 return this.RootFrame;
}
  

I created a public property to instantiate the RadPhoneApplicationFrame and overrided the CreatePhoneApplicationFrame to return the custom frame.

Here the new Bootstrapper:

public class Bootstrapper : PhoneBootstrapper
{
 PhoneContainer container;

 private PhoneApplicationFrame rootFrame;

 private new PhoneApplicationFrame RootFrame
 {
  get
  {
   if (this.rootFrame == null)
    this.rootFrame = new RadPhoneApplicationFrame();

   return this.rootFrame;
  }
  set
  {
   this.rootFrame = value;
  }
 }

 protected override void Configure()
 {
  container = new PhoneContainer();
  
  container.RegisterPhoneServices(RootFrame);

  container.PerRequest<MainPageViewModel>();
  
  AddCustomConventions();
 }

 protected override PhoneApplicationFrame CreatePhoneApplicationFrame()
 {
  return this.RootFrame;
 }

 static void AddCustomConventions()
 {
 }

 protected override object GetInstance(Type service, string key)
 {
  return container.GetInstance(service, key);
 }

 protected override IEnumerable<object> GetAllInstances(Type service)
 {
  return container.GetAllInstances(service);
 }

 protected override void BuildUp(object instance)
 {
  container.BuildUp(instance);
 }
}

domenica 16 giugno 2013

Coding4Fun - ThemedImageConverter

When you publish an application, you need to meet the requirement 5.5.2 from Dev Center:
"App content, such as text and visual elements, must be visible and legible regardless of the phone theme without panning horizontally or zooming.."

The example is when you have an image with the same color of background theme.
What you can do?
- select a different color for image.
- manage the image source swap from code behind.
- the best practice is to use the ThemedImageConverter from Coding4Fun Toolkit.

Let's go:
Download the Coding4Fun Toolkit from NuGet or Codeplex.

Add the static resource in your page:
<c4fun:themedimageconverter x:key="ThemedImageConverter"></c4fun:themedimageconverter>

Use this simple converter in your image:
<Image Source="{Binding Converter={StaticResource ThemedImageConverter}, ConverterParameter={StaticResource PhoneBackgroundColor}}" DataContext="/Assets/{0}/img.png" />

You can check also the InverseThemedImageConverter to swap from light and dark themes.


domenica 21 aprile 2013

Windows Phone 7.8 - Gmail Sync: contacts and calendar

After January 30 2013, Google dropped Exchange ActiveSync support.
Now if you add a Google account in Windows Phone 7.8, you can sync only emails.
But if I want to sync my Google Contacts and Calendars...??

Just follow this steps:
- Go in Settings >>> Email + Accounts.
- Add an account.
- Choose Outlook (Outlook.com, Exchange, Office 365).
- Write you Google email, password and press Sign In button.

Fill the new page with this informations:
- Account: your Google email
- Domain: google
- Server: m.google.com

Et voilà, you done! :)



martedì 19 marzo 2013

Vote myMoneyBook and win a Lumia 920


Microsoft is running a campaign called Windows Phone Next App Star, and guess what? Over 9,000 apps entered the competition, and my app myMoneyBook is one of 64 finalists!

Starting today, March 19, my app is in a head-to-head battle with another finalist. If my app gets the most votes, it keeps moving forward, and I keep winning more prizes.  If my app wins the whole thing, myMoneyBook will be Windows Phone Next App Star and will be featured in an upcoming Windows Phone television ad!

Even better, every time people like you participate in the campaign and vote, they are entered to win a brand new Lumia 920 Windows Phone! Microsoft is giving away one Lumia 920 every day throughout the contest, and every vote is an entry.
Will you please help me become Windows Phone Next App Star?


Please note:
you may have to vote several times before reaching the voting opportunity for my app. There are 32 first round match-ups, just look for a picture of me and my app myMoneyBook.




martedì 19 febbraio 2013

PeriodicTask bug in Windows Phone 8


After almost two months, WPDev Team has confirmed a bug for PeriodicTask in Windows Phone 8:

PeriodicTask fails to trigger if there is no network connectivity in WP8 (enable Airplane mode,  or disable both cellular and wifi.

Here my discussion: http://social.msdn.microsoft.com/Forums/en-US/wpdevelop/thread/216a9f3d-9284-4d1e-ac2a-83f2d13e361c


mercoledì 6 febbraio 2013

Easy SQL CE on Windows Phone

In Windows Phone is very simple to add and use SQL CE database.
What you need? Nothing... it's built in the Windows Phone Runtime.

Let's start...

If not exists, add the reference System.Data.Linq in your project.

Create the class to map the entity to the table:
[Table(Name="Utenti")]
public class Utente
{
    [Column(IsPrimaryKey = true, IsDbGenerated = true)]
    public int Id { get; set; }

    [Column(CanBeNull = false)]
    public string Name { get; set; }
}
You can see the attributes for the table and columns: table name, primary key, etc..

Now add a class for DataContext with the reference to the table Utenti. The DataContext wraps all operations you can do with database:
public class MyDataContext: DataContext
{
    public const string ConnectionString = "isostore:/mydatabase.sdf";

    public Table<Utente> Utenti { get; set; }

    public MyDataContext(string connectionString)
        : base(connectionString)
    {
        this.Utenti = this.GetTable<Utente>();
    }
}
ConnectionString has the special path to locate the database file in the isolated storage.

The classes for SQL CE are ready.
The last thing is create the physical .sdf file when the application start.
private void Application_Launching(object sender, LaunchingEventArgs e)
{    
    using (var context = new MyDataContext(MyDataContext.ConnectionString))
    {
        if (!context.DatabaseExists())
            context.CreateDatabase();
    }
}

And now enjoy with your LinqToSql queries!
using (var context = new MyDataContext(MyDataContext.ConnectionString))
{
    var utenti = context.Utenti.OrderByDescending(u => u.Name).ToList();
}

Remember the "using" statement, because you need to dispose your DataContext to prevent high memory usage. The cost to create a new istance is very small.

NOTE: if you want to build an application for Windows 8/RT, maybe SQL CE is not your way. Why? Unfortunately Windows 8/RT don't support it. In this case you can use SQLITE.

venerdì 18 gennaio 2013

Windows Phone 8 - Theme Colors (HEX - RGB)

Do you want to know the HEX or the RGB of Windows Phone 8 theme colors? Here the table. Just copy/paste the code below:

Lime: #A4C400 Green: #60A917 Emerald: #008A00 Teal: #00ABA9 Cyan: #1BA1E2
Cobalt: #0050EF Indigo: #6A00FF Violet: #AA00FF Pink: #F472D0 Magenta: #D80073
Crimson: #A20025 Red: #E51400 Orange: #FA6800 Amber: #F0A30A Yellow: #E3C800
Brown: #825A2C Olive: #6D8764 Steel: #647687 Mauve: #76608A Taupe: #87794E


Complete list with RGB:
  • Lime: #A4C400; RGB(164, 196, 0)
  • Green: #60A917; RGB(96, 169, 23)
  • Emerald: #008A00; RGB(0, 138, 0)
  • Teal: #00ABA9; RGB(0, 171, 169)
  • Cyan: #1BA1E2; RGB(27, 161, 226)
  • Cobalt: #0050EF; RGB(0, 80, 239)
  • Indigo: #6A00FF; RGB(106, 0, 255)
  • Violet: #AA00FF; RGB(170, 0, 255)
  • Pink: #F472D0; RGB(244, 114, 208)
  • Magenta: #D80073; RGB(216, 0, 115)
  • Crimson: #A20025; RGB(162, 0, 37)
  • Red: #E51400; RGB(229, 20, 0)
  • Orange: #FA6800; RGB(250, 104, 0)
  • Amber: #F0A30A; RGB(240, 163, 10)
  • Yellow: #E3C800; RGB(227, 200, 0)
  • Brown: #825A2C; RGB(130, 90, 44)
  • Olive: #6D8764; RGB(109, 135, 100)
  • Steel: #647687; RGB(100, 118, 135)
  • Mauve: #76608A; RGB(118, 96, 138)
  • Taupe: #87794E; RGB(135, 121, 78)